类和普通函数中箭头函数里面this问题
来源:4-8 -什么时候不能使用箭头函数
内六角
2022-03-10
// 类
class F {
constructor(name) {
this.name = name;
}
walk = () => {
return this.name;
}
}
var ff = new F('双月');
ff.walk(); // '双月'
// 普通构造函数
function F() {
this.name = name;
}
F.prototype.walk = () => {
return this.name;
}
var ff = new F('双月');
ff.walk(); // ''
普通函数中执行 walk 获取不到能理解,但是类里面的 walk 不同样是定义在原型上的吗,类不仅仅是一个语法糖吗,为什么两者会不一样?
老师,平时用着没感觉,为什么被老师一讲反而有点糊涂了?
写回答
2回答
-
infjer
2022-03-16
箭头函数里this指向定义时所在的对象。class里箭头函数this总会指向实例对象。
00 -
双越
2022-03-10
class 的语法就是这样规定的。
再例如,class 里各个方法之间,都不用加逗号。而如果写对象,就得加逗号。
00
相似问题