es6对象方法简写?
高洛峰
高洛峰 2016-11-09 11:36:21
0
2
767
var person = {
    name: "Nicholas",
    sayName() {
        console.log(this.name);
    }
};

var person = {
    name: "Nicholas",
    sayName:()=> {
        console.log(this.name);
    }
};

这两种写法有什么区别?

高洛峰
高洛峰

拥有18年软件开发和IT教学经验。曾任多家上市公司技术总监、架构师、项目经理、高级软件工程师等职务。 网络人气名人讲师,...

全部回覆(2)
代言

this的不一样,箭头函数不会产生新的this

三叔

区别在于第一个 this 指向 person,也就是你调用 person.sayName() 时可以得到 Nicholas,第二个实际上可以看作

var person = {
    name: "Nicholas",
    sayName: function() {
        console.log(this.name);
    }
};

它的 this 实际上指向的是 window 而不是 person,所以取不到对应的 name 值

熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板