类和普通函数中箭头函数里面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总会指向实例对象。

0
0

双越

2022-03-10

class 的语法就是这样规定的。

再例如,class 里各个方法之间,都不用加逗号。而如果写对象,就得加逗号。

//img.mukewang.com/szimg/622a066f092d41c809020544.jpg

0
0

2周刷完100道前端优质面试真题 双越最新力作

『前端面试真题100道』视频详解

1509 学习 · 642 问题

查看课程