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

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

这两种写法有什么区别?

高洛峰
高洛峰

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

membalas semua(2)
代言

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

三叔

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

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

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

Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan