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

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

这两种写法有什么区别?

高洛峰
高洛峰

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

répondre à tous(2)
代言

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

三叔

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

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

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

Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal