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ł f
z o
:
var fBound = f.bind(o);
A potem mogę po prostu zadzwonić fBound
:
fBound();
Który wyświetli to ( o
obiekt):
{'a': 42}
Chłodny! Śliczny! Tyle że to nie działa. Zamiast wyprowadzać o
obiekt, wyprowadza window
obiekt.
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.
this
zakresu nadrzędnego.