Мне кажется, что в ES6 следующие две функции очень близки:
function () {
return this;
}.bind(this);
() => {
return this;
};
Конечный результат выглядит одинаково: функции-стрелки создают объект функции JavaScript со своим контекстом this
, связанным с тем же значением, что и this
, где они созданы.
Очевидно, что в общем смысле Function.prototype.bind
является более гибким, чем функции стрелок: он может связываться со значениями, отличными от локального this
, и он может связывать любую функцию this
в любой момент времени, потенциально долго после его создания. Тем не менее, я не спрашиваю, как bind
сам отличается от функций стрелок, я спрашиваю, как функции стрелок отличаются от непосредственного вызова bind
с помощью this
.
Существуют ли различия между двумя конструкциями в ES6?