Od jakiegoś czasu eksperymentuję z ES6 i właśnie doszedłem do małego problemu.
Bardzo lubię używać funkcji strzałkowych i kiedy tylko mogę, używam ich.
Jednak wydawałoby się, że nie możesz ich związać!
Oto funkcja:
var f = () => console.log(this);
Oto obiekt, z którym chcę powiązać funkcję:
var o = {'a': 42};
A oto jak bym się związał fz o:
var fBound = f.bind(o);
A potem mogę po prostu zadzwonić fBound:
fBound();
Który wyświetli to ( oobiekt):
{'a': 42}
Chłodny! Śliczny! Tyle że to nie działa. Zamiast wyprowadzać oobiekt, wyprowadza windowobiekt.
Więc chciałbym wiedzieć: czy możesz powiązać funkcje strzałkowe? (A jeśli tak, to jak?)
Przetestowałem powyższy kod w Google Chrome 48 i Firefox 43 i wynik jest taki sam.
thiszakresu nadrzędnego.