묻고 답해요
141만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결
자바스크립트 this에 대해서 정리해봤습니다
https://velog.io/@wn8624/22%EC%9E%A5-this
-
해결됨나도코딩의 자바 기본편 - 풀코스 (20시간)
생성자 안에 메소드...?!
안녕하세요, 선생님...ㅎ 갑작스럽게 생각난 질문인데요...ㅎ 제가 예시로 아래처럼 클래스를 만들어 봤는데, 혹시 상속받은 클래스의 super(); 생성자 안에 이렇게 메소드도 넣을 수 있나요? 자바를 공부하면서 지금 여러 소스 코드들을 보고 있는데, 어느 소스코드는 super(); 생성자 안에 메소드를 집어 넣은 경우가 있더라구요?! 만약에 이렇게 만들 수 있다면, 언제 어느 때 가능할까요?클래스는 정말 제가 생각나는대로 적어서 컴파일 에러 같은 건 생각하지 않았습니다. 부디 너그럽게 봐주셨음 합니다...ㅎclass Kid extends SomethingAwesome { Kid(int age) { super(comment(age)); // super() 생성자 안에 comment메소드 삽입 } public String comment(int age) { String saySometing = ""; if (age > 3 && age < 7) { saySomething += "엄마, 과자 사줘!"; } else if (age >= 7 && age < 11) { saySomething += "엄마, 이젠 로보트 사줘!"; } return saySomething; } public static void main(String[] args) {...} // 메인 메소드 실행 }또한 일반적인 생성자 (Constructor)를 만들 때도, 생성자 안에 전달 값외에도 메소드를 넣을 수 있는가요? 이것도 마찬가지로 위에 예시로 코드를 적은 것 처럼 제 나름대로...ㅎ 써봤습니다...ㅎ 위의 예시 처럼 정말로 생성자 안에 메소드를 넣는게 가능한지 궁금해서 약간 무리수를 두면서(?) 코드를 적어봤습니다..ㅎ 이것도 너그럽게 봐주세요...ㅎ 감사합니다 : )class ThankYouNote { // 제가 생각해도 좀 많이 이상하지만, // 메소드를 이렇게 선언해서 do = thanks(); // this.do = do; 이렇게는 많이 무리수죠? ㅠㅠ // 저렇게 위 클래스 처럼 super 생성자 안에 메소드를 넣는건 처음봐요 ㅠㅠ ThankYouNote() { thanks(); // this(thanks()); // 너무 많이 무리수 인듯하지만 일단 적어봤습니다...ㅠㅜ } public void thanks() { System.out.println("나도코딩 선생님, 감사합니다. :)"); } public static void main(String[] args){ ... } // 메인 메소드 실행 }
-
해결됨홍정모의 따라하며 배우는 C++
단항 연산자 오버로딩에서 return 부분에 질문이 있습니다.
Cents operator-() const { return Cents(- cents_); }저 리턴부분에서 임시객체인 Cents를 빼도 정상적으로 -가 붙어서 출력이 나오는데요. 왜 굳이 임시 객체를 통해서 반환해 줘야 하나요? 인스턴스를 만들면 this가 자동으로 호출이 되니까 Cents를 빼고 return this->(-cents_); 또는 return -cents_; 를 해줘도 멤버변수를 그대로 리턴해줄 수 있지 않나요??
-
해결됨홍정모의 따라하며 배우는 C++
return *this에 관해 질문이 있습니다.
*this가 멤버변수를 참조한다는 것은 알겠는데 왜 그냥 this를 리턴하면 저 오류가 뜨는지 모르겠습니다.this도 인스턴스화된 객체를 가리키는 포인터니까 좌값이 맞지 않나요? 아니면 인스턴스의 주소가 우값에 속해있는 건가요??
-
미해결Vue.js 완벽 가이드 - 실습과 리팩토링으로 배우는 실전 개념
v-on:click= " " 내부의 this는 무엇을 가리키나요? 그리고 안에는 뭐가 들어가나요?
저번에도 비슷한 질문을 했었는데 해주신 답변이안녕하세요, "v-on:이벤트명"의 대상으로는 해당 컴포넌트의 메서드 이름이 올 수 있다고 보시면 됩니다. logText() 형태가 아니라 logText로 써주셔야 합니다 :)였습니다근데case 1)<button @click="this.message+='!'">{{ this.message }}</button>-> TypeError: Cannot read properties of nullcase 2)<button @click="message+='!'">{{ this.message }}</button>--> 정상적으로 '!'가 뒤에 추가됨case 3)<button @click="addMessage">{{ this.message }}</button>--> 정상적으로 '!'가 뒤에 추가됨case 4) <button @click="addMessage()">{{ this.message }}</button>--> 정상적으로 '!'가 뒤에 추가됨case 5)<button @click="this.addMessage">{{ this.message }}</button>--> 정상적으로 '!'가 뒤에 추가됨case 6) <button @click="this.addMessage()">{{ this.message }}</button>-> TypeError: Cannot read properties of null 예시가 길었습니다!그래서 질문입니다1) v-on:click ="" 내부에서 this.메서드() 하면 this가 null 취급을 받는데 this.메서드 하면 this가 null 취급을 안 받는 이유가 뭔가요?2) 그럼 왜 {{ this.message }} 의 this는 null 취급을 안 받나요?3) 그래서 v-on:click="" 안에는 함수 참조가 들어가는 건가요 아니면 함수 호출문이 들어가는 건가요? case3, case4를 보면 함수 참조, 함수 호출문 둘다 들어갈 수 있는데 또 case 5, case6을 보면 모르겠습니다.
-
미해결프론트엔드 날개달기: Vue, React 배우기 전에 꼭 알아야하는 지식
화살표 함수의 this 질문드립니다!!
화살표 함수의 this는 상위의 스코프를 가리킨다. 이런 개념이잖아요?? 그래서 obj안에 obj를 만들어 거기에서 화살표함수를 통해 함수를 만들고 호출하였습니다. 상위 스코프이기에 test가 출력이 될 거라고 생각했는데 window가 출력이 되더라구요.. 왜일까요?ㅠㅠ const test = { name : 'test1', foo : { bar : ()=> { console.log(this) } } } test.foo.bar()
-
미해결Redux vs MobX (둘 다 배우자!)
익명함수와 화살표함수 this
강의 중 궁금한 것이 있습니다 .(10:22 관련) useLocalStore로 감싼 객체리터럴 중 메소드를 action으로 감쌌을 때 { name: '', onChangeName: action((e)=>{ this.name = e.target.value; }) } this가 어째서 익명함수를 사용했을 때는 작동하고, 화살표함수로 했을 때는 작동을 안하는지 이해가 잘 안됩니다. 만약 action함수가 this를 바꾼다면.. 오히려 화살표함수의 this가 바깥의 객체로 bind 되니까 작동해야하고 익명함수의 this는 action으로 바뀌니까 작동을 안해야하는것 아닌지요??화살표함수는 this문제를 해결하기 위해 나온것으로 알고 있는데.. 화살표함수는 프로토타입이 존재하지 않는다라는 말을 들어서 그 특성과 연관이 되어있는지요???
-
미해결Vue.js 중급 강좌 - 웹앱 제작으로 배워보는 Vue.js, ES6, Vuex
this의 scope
안녕하세요! this의 scope가 이해되지 않아 문의드립니다~ 모든 컴포넌트가 App.js에 등록되어 있고, App.js가 똑같은 Vue instance를 가르키고 있기 때문에 this를 거슬러 올라가면 똑같은 instance를 가르키고 있기 때문에 input에서 가르키는 this는 TodoInput 컴포넌트를 가르킨다. 이렇게 말씀하셨는데, 어떤 컴포넌트에서 this를 사용하면 거슬러 올라가면서 해당 객체(newTodoItem)를 찾는데 가장 가까운 객체를 찾는건가요? 아니면 해당 객체가 포함된 컴포넌트 안에서 찾는건가요? 만약 컴포넌트 안에서 찾는거라면 모든 컴포넌트가 App.js를 참조하고, App.js가 Vue instance를 참조하는 것과 무슨 관련이 있는건지 이해가 되지 않습니다. 답변 부탁드립니다^.^
-
해결됨[리액트 1부] 만들고 비교하며 학습하는 리액트 (React)
선생님 delegate함수를 사용하는 부분에 대해서 질문이 있습니다
강의 너무 재밌고 흥미롭습니다 감사합니다 !! 제 질문은 아래와 같습니다. delegate 함수를 호출할 때 아래 코드에서와 같이 화살표 함수를 콜백으로 넘겨주는데요, // KeywordListView.js bindEvents() { delegate(this.element, "click", "li", (event) => this.handleClick(event)); } handleClick(event) { const value = event.target.dataset.keyword; this.emit("@click", { value }); } // helper.js export function delegate(target, eventName, selector, handler) { const emitEvent = (event) => { const potentialElements = qsAll(selector, target); for (const potentialElement of potentialElements) { if (potentialElement === event.target) { return handler.call(event.target, event); } } }; on(target, eventName, emitEvent); } 화살표 함수로 넘기는 이유는 handleClick 함수에 this를 바인딩 하지 않기 위해서인가요? 제가 이해한 의도는 helper의 delegate 함수에서 handler를 호출할 때 call을 이용해서 event.target을 this로 넘겨주는데, handleClick에서는 KeywordListView 클래스가 상속받은 emit함수를 호출하기 위해서, this에 다른 것이 바인딩 되지 않도록 하기 위해 화살표 함수를 사용한 것으로 이해했습니다. 이게 선생님이 코드를 작성하신 의도가 맞는지 확인하고 싶어서 질문드립니다. 감사합니다!
-
해결됨코어 자바스크립트
화살표함수 this 바인딩 관련 질문 드립니다.
안녕하세요, 선생님. this 강의를 듣고 아래와 같이 this 바인딩 코드를 작성하였는데, 함수를 실행시킨 곳에서 this 바인딩이 되서 전역에 있는 name 변수 값인 outer가 출력이 될 줄 알았는데 전혀 예상과 다르게 undefined가 출력이 되는데요. 왜 그런지 궁금합니다. const name = 'outer'; function test1() { const name = 'test1'; console.log(this.name); } const test2 = () => { const name = 'test2'; console.log(this.name); }; test1(); // undefined test2(); // undefined
-
미해결실습 UI 개발로 배워보는 순수 javascript 와 VueJS 개발
return this에 대해서 (재업로드)
1-vanilla 폴더에서 View.js / FormView.js / TabView.js / KeywordView.js (상속 받는 HistoryView.js) 등이 갖고 있는 메서드 중에서 return this를 하는 메서드가 있는데요, return this를 하는 이유는 무엇이고, return this를 함으로써 어떻게 사용되는 것인지, 만약 return this를 하지 않는다면 어느 부분에서 어떤 에러가 발생하게 되는 것인지 명쾌하게 이해가 되지 않습니다. ResultView에서는 return this를 하지 않는 것은 또 왜인가요? 추가) 각 메서드 내부에서 console.log를 찍어보기는 했는데요, View.js의 init() 메서드 안에서 찍어본 console.log(this)는 Form, Tab, Keyword 등의 View객체를 가리키는 것 같긴 해요. 다른 ...View.js 파일에서 this를 쓰는 메서드마다 전부 console.log를 찍어보더라도 this에 대한 개념이 잘 와닿지가 않습니다. 답변 부탁드리겠습니다!
-
미해결실습 UI 개발로 배워보는 순수 javascript 와 VueJS 개발
return this에 대해서 이해가 잘 되지 않아요
1-vanilla 폴더에서 View.js / FormView.js / TabView.js / KeywordView.js (상속 받는 HistoryView.js) 등이 갖고 있는 메서드 중에서 return this를 하는 메서드가 있는데요, return this를 하는 이유는 무엇이고, return this를 함으로써 어떻게 사용되는 것인지, 만약 return this를 하지 않는다면 어느 부분에서 어떤 에러가 발생하게 되는 것인지 명쾌하게 이해가 되지 않습니다. ResultView에서는 return this를 하지 않는 것은 또 왜인가요? 추가) 각 메서드 내부에서 console.log를 찍어보기는 했는데요, View.js의 init() 메서드 안에서 찍어본 console.log(this)는 Form, Tab, Keyword 등의 View객체를 가리키는 것 같긴 해요. 다른 ...View.js 파일에서 this를 쓰는 메서드마다 전부 console.log를 찍어보더라도 this에 대한 개념이 잘 와닿지가 않습니다. 답변 부탁드리겠습니다!
-
미해결Vue.js + TypeScript 완벽 가이드
emit 안에서 this
vue 와 nuxt 를 좋아하는 사람입니다. 1. 예전 부터 궁금해왔지만 정확히 모르고 감으로 vue 에서 this 를 쓰고 있었습니다. vue 에서 this.$emit('event', payload) 에서 this 가 정확히 무엇인지 궁금해요. 2. 가끔씩 this.$refs , this / this.$store 도 쓰는데 여기서 this 가 약간 vue 전역? 느낌의 객체로 생각하고 있는데 정확한 this 의 정의가 궁금합니다.. 3. 3번 질문은 지극히 개인적인 문제이고 답변을 안 해주셔도 됩니다.. 군인이기에 멘토링 할 시간이 안되 이렇게 따로 여쭙습니다. 저는 vue 와 nuxt 가 좋은데 주변에서는 vue 가 망할 꺼라고 현 우리나라는 react 만 쓴다고해서 vue 를 계속 파고싶은데 너무 불안합니다. 이에 대해 조언이나 견해를 말씀해 주세요..ㅠㅠ 강의로 도움 많이 받고 있습니다 항상 감사합니다 판교님
-
미해결Vue.js 완벽 가이드 - 실습과 리팩토링으로 배우는 실전 개념
axios.get callback 내부에서 this
안녕하세요 강의 잘 듣고 있습니다. 다름이 아니라 axios.get()의 callback 함수의 내부에서 vm.을 사용하셨는데, vm.users가 아니라 this.users를 사용해도 정상적으로 데이터가 들어가고 있습니다. async created(){ await axios.get('https://api.hnpwa.com/v0/news/1.json').then((res) => { console.log(res) this.newses = res.data }).catch((err) => { console.log(err) }) }, 인텔리센스가 띄워주는 타입을 보니 callback 내부의 this와 외부에서의 this가 동일하게 CombinedVueInstance로 잡히는데 혹시 차이점이 있을까요? 아니면 버전업에 따른 수정 사항인지 궁금합니다. 감사합니다.
-
미해결비전공자를 위한 진짜 입문 올인원 개발 부트캠프
Lamda식과 this, 어떤 걸 알고 있어야 하는건가요?
교재에 있는 링크를 타고 가서 생코의 this 5강을 들었는데요. "생성자 안에서 this는, 그 생성자가 만든 객체를 가르킨다."라는 건 이해했는데, 이걸 언급해주신 부분과 어떻게 연계되어서 알고 있으면 될지가 궁금합니다.