美文网首页
箭头函数没有绑定this

箭头函数没有绑定this

作者: 龙旗飘扬的舰队 | 来源:发表于2019-01-31 18:19 被阅读11次

    ==箭头函数没有绑定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的闭包。

    相关文章

      网友评论

          本文标题:箭头函数没有绑定this

          本文链接:https://www.haomeiwen.com/subject/rvrlsqtx.html