const o = {
name: 'Gojol',
greetBackwards: function() {
function getReverseName() {
let nameBackwards = '';
for(let i = this.name.length - 1; i >= 0; i--) {
nameBackwards += this.name[i];
}
return nameBackwards;
}
return `${getReverseName()} si eman ym, olleH`;
},
};
console.log(o.greetBackwards());
위는 this 에러문이고
const o = {
name: 'Backsu',
greetBackwards: function() {
const self = this;
function getReverseName() {
let nameBackwards = '';
for(let i = self.name.length - 1; i >= 0; i--) {
nameBackwards += self.name[i];
}
return nameBackwards;
}
return `${getReverseName()} si eman ym, olleH`;
},
};
console.log(o.greetBackwards());
이건 수정한거라고 하는데
에러 예제에서 this가 뭐때문에 에러를 발생시키는지,
수정된 예제에서 self = this; 선언한 의미가 무엇인지
저 예제는 왜 정상동작하는지
애초에 this를 왜쓰는지조차 아직 이해가 하나도 안되여 책 따라가는건데도...
혹시 좋은 사이트나 설명 알려주시면 감사..
this is sparta
this 쓴곳 바로 윗줄에다가 console.log(this) 찍어보면 바로 이해될꺼임. 사용한곳 둘 다.
넵 해볼게여 감사합니다
해당 댓글은 삭제되었습니다.
아 뭔가 그부분은 알것같네요 근데 수정한예제에서 self = this 로 선언하고 그 아래서 self.name쓴게 좀 이해가 안가네요 뭐가다른지도 잘 모르겟고
this 를 이해할때는, this 오른쪽이 어느 스코프에 속해있는 놈인가 이해하면 끝임
this를 찍어보는게 이해가 젤 빠를거야
찍어보라는게 윗댓처럼 console.log로 눈으로확인하라는거 말하는거 맞져
ㅇㅇ맞음
뭔가 차이는 감이 잡히긴하네요 ㅜㅜ 근데 this를 왜쓰지, self는 뭐지 의문이 남아있네요 책 좀더 둘러봐야할듯합니다 감사요 ㅠㅠ
예제니깐 뭐 괜찮을수 있지만 self = this 이런 코드 쓰지마라 가독성도 문제고 메소드 결과를 예측 할 수 없어진다.
넵 감샇반디아
self 는 reserved keyword라서 안써야하지만, this = me 많이 씀.
자스는 this 프레임(객체)을 bind , call을 이용해서 명시적으로 가리킬수 있고, self를 이용하는 것은 함수의 선언 단계에서 this가 가리키는 객체를 다른 변수에 할당하여 참조를 유지하는거라고 보면될듯 - dc App
감사합니당 greetBackwards란 함수에 선언되있어서 o를 가리키는게아니라 greetBack을 가리키는거 아닌가 했는데 공부좀 더해야겠네여
const o = { name: 'Gojol', greetBackwards: function() { return `${this.getReverseName()} si eman ym, olleH`; }, getReverseName : function(){ let nameBackwards = ''; for(let i = this.name.length - 1; i >= 0; i--) { nameBackwards += this.name[i]; } return nameBackwards; }};
함수안에서 함수 만들지말구 그냥 따로 만들구 실행시켜 ㅋㅋ
와 확실히 깔끔하네용.. 감사합니다 이런경우 따로만드는게 더 낫군여
SCOPE 라는게 있어서 function () {} 이렇게 하면 SCOPE 가 따로 잡힌다 그래서 self = this 로 어거지로 그 SCOPE 를 맞추는거야 책보고 하는거면 책버려라 오래된 책이다. 지금 저렇게 코딩 안한다.
아 낡고 옹졸한수법인것; 다양한 저자가 쓴것들 여러개 봐보면서 여러방면에서 배우고싶었숩니당.. 가볍게 보고 넘어갈게요