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回答

好帮手慕星星

2022-05-12

同学你好,箭头函数没有自己的作用域,但是say是类实例上的方法

https://img.mukewang.com/climg/627c6843094f328c03500101.jpg

say和age一样,直接赋值相当于用this定义的,也就是在类实例上。那么箭头函数中的this就会指向实例,也就是Person 对象,this.age为实例中的属性,值为20。

祝学习愉快!

0

0 学习 · 17877 问题

查看课程