var person = { name: "Nicholas", sayName() { console.log(this.name); } }; var person = { name: "Nicholas", sayName:()=> { console.log(this.name); } };
这两种写法有什么区别?
拥有18年软件开发和IT教学经验。曾任多家上市公司技术总监、架构师、项目经理、高级软件工程师等职务。 网络人气名人讲师,...
this的不一样,箭头函数不会产生新的this
区别在于第一个 this 指向 person,也就是你调用 person.sayName() 时可以得到 Nicholas,第二个实际上可以看作
var person = { name: "Nicholas", sayName: function() { console.log(this.name); } };
它的 this 实际上指向的是 window 而不是 person,所以取不到对应的 name 值
this的不一样,箭头函数不会产生新的this
区别在于第一个 this 指向 person,也就是你调用 person.sayName() 时可以得到 Nicholas,第二个实际上可以看作
它的 this 实际上指向的是 window 而不是 person,所以取不到对应的 name 值