어휘 this
바인딩 과 함께 ES6 화살표 기능을 사용하는 것이 좋습니다.
그러나 잠시 전에 일반적인 jQuery 클릭 바인딩과 함께 사용하여 문제가 발생했습니다.
class Game {
foo() {
self = this;
this._pads.on('click', function() {
if (self.go) { $(this).addClass('active'); }
});
}
}
대신 화살표 기능 사용 :
class Game {
foo() {
this._pads.on('click', () => {
if (this.go) { $(this).addClass('active'); }
});
}
}
그런 다음 $(this)
ES5 (self = this) 유형 클로저로 변환됩니다.
Traceur가 어휘 바인딩에 대해 "$ (this)"를 무시하도록하는 방법이 있습니까?
.on()
실제로this
유용한 값을 가지고 있기 때문에 화살표 기능을 사용하지 않는 경우의 완벽한 예처럼 보입니다 . 나에게는this
이벤트를 전달하고 수동으로 대상을 찾는 것보다 이벤트 대상 을 참조하는 것이 훨씬 더 명확 합니다. 화살표 기능을 많이 사용하지는 않았지만 익명의 기능으로 앞뒤로 이동하는 것이 혼란 스러울 것 같습니다.