我认为,在ES6中,下面两个函数非常相似:nearly
function () {
return this;
}.bind(this);
() => {
return this;
};
最终结果似乎相同:箭头函数会生成一个JavaScript函数对象,其this
上下文与创建它们的this
值绑定到相同的值。
显然,在一般情况下,Function.prototype.bind
比箭头函数更加灵活:它可以绑定到除局部this
之外的其他值,并且可以在任何时间绑定任何函数的this
,甚至在初始创建之后很长一段时间。但是,我问的不是bind
本身与箭头函数的不同之处,而是箭头函数与立即使用bind
和this
之间的区别。
ES6中这两个结构之间有区别吗?
bind
本质上是在创建两个函数。除此之外,你提到的事情和箭头函数具有更简洁的语法之外,没有任何区别。 - Felix Klingbind
而不是箭头函数的时间,因此我已经提出了一个新问题,讨论何时使用bind
:https://runkit.com/embed/yhv29j5sybvn - hippietrailbind
版本中,它返回一个新函数,该函数将参数部分应用于bind
。箭头没有this
,因此使用它就像来自更高作用域的任何自由变量一样。 - Sylwester