美文网首页JS相关让前端飞Web前端之路
es6箭头函数中的this的区别

es6箭头函数中的this的区别

作者: WMLJS | 来源:发表于2017-08-03 10:54 被阅读95次

    箭头函数函数看上去只是es6对匿名函数的简写,其实箭头函数和匿名函数有明显区别

    • 普通方式定义的函数可参考我之前整理的文章 关于js中this
    • 箭头函数中的this是词法作用域,即this和调用时的上下文无关
    • 箭头函数根本就没有绑定自己的 this,在箭头函数中调用 this 时,仅仅是简单的沿着作用域链向上寻找,找到最近的一个 this 拿来使用罢了(外层调用者);
    • 因为箭头函数没有绑定this,所有call,apply的第一个参数(this的绑定)无效
      来看看区别
    //箭头语法
    var obj = {
        name: 'ab',
        getName: function () {
            var fn = () => this.name; // this指向obj对象
            return fn();
        }
    };
    obj.getName();
    
    //普通的方式
    var obj = {
    name: 'ab',
    getName: function () {
        var fn = function() {return this.name} // this指向winodw对象
        return fn();
    }
    };
    obj.getName();
    

    相关文章

      网友评论

        本文标题:es6箭头函数中的this的区别

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