zabawy z niektórymi es6 i wpadł na problem, nie jestem pewien, jak rozwiązać. rozważyć następującees6 klasy i "to" z procedurami obsługi zdarzeń
class Foo {
constructor () {
window.addEventListener('scroll', this.watch);
}
watch () {
console.log(this);
}
}
wewnątrz watch
, this
jest przedmiotem window
, jak oczekiwano. Ale jak mam się odwołać do Foo
? Obecnie obejmuję to za pomocą binda this.watch.bind(this)
, ale chciałbym wiedzieć, czy istnieje bardziej "właściwy" sposób ES6, aby to osiągnąć.
bym zazwyczaj mają „var = to ja” tylko wewnątrz Foo, ale czuje się równie paskudny. Ale pamiętaj, JavaScript nie jest językiem OO. – Ian
Artykuł [ECMAScript 6: automatycznie wiążące wyodrębnione metody] (http://www.2ality.com/2013/06/auto-binding.html) przedstawia 2 rozwiązania. –
Spróbuj użyć funkcji grubej strzałki do oglądania: 'watch() {() => {console.log (this)}}' –