箭头函数没有绑定this

2019-01-31  本文已影响11人  龙旗飘扬的舰队

==箭头函数没有绑定this==

==也就是说箭头函数本身没法修改this,所以对this访问永远是它继承外部上下的this按照babel的实现来说,在箭头函数内部没有this引用的时候,默认编译成这样==

var f = function(v) {
  return v;
};

但是如果箭头函数内部使用了this,就成了

function test() {
  var _this = this;

  var f = function f(v) {
    return _this.a;
  };
}

这个实现是符合标准的,==全程没有绑定这回事==。所以结论就是:

“箭头函数”的this,总是指向定义时所在的对象,而不是运行时所在的对象。

这句话完全正确,而且语言是通过忽略对箭头函数的所有绑定操作来实现的,而不是简单的返回一个绑定this的闭包。

上一篇下一篇

猜你喜欢

热点阅读