this的指向
来源:3-1 实例属性、静态方法和静态属性
Yuri沫
2022-05-11 22:05:59
// ES6测验第8题: const age = 17; class Person{ constructor(age){ this.age = age; } age = 18; static age = 19; say = () => { console.log(this.age); } } var p1 = new Person(20); p1.say();
老师,不是很明白为什么最后输出的this.age = 20?
箭头函数不是没有自己的作用域嘛,而且箭头函数也不符合谁调用this就指向谁,那往外找作用域只有window了啊
1回答
同学你好,箭头函数没有自己的作用域,但是say是类实例上的方法
say和age一样,直接赋值相当于用this定义的,也就是在类实例上。那么箭头函数中的this就会指向实例,也就是Person 对象,this.age为实例中的属性,值为20。
祝学习愉快!
相似问题