箭头函数没有绑定this

箭头函数没有绑定this
  • 不要把【箭头函数】和【箭头函数的定义函数】弄混淆
  • ecma262规范中明确规定,箭头函数根本没有自身的this绑定
  • 在函数执行前绑定this的时候,传入的thisArgument会被直接忽略

也就是说箭头函数本身没法修改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的闭包。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值