为啥想要子类字段,却返回父类字段啊? --<Javascript 学习笔记 5>

Lemon1x
• 阅读 130

Javascript 学习笔记 5

JS 是个好东西啊,可惜有些东西太灵活,我把我不住。

就比如今天的这个例子:

class Base {
    name = '父类';

    constructor() {
        console.log(this.name);
    }
}

class Sub {
    name = '子类';
}

new Sub(); // 嗯?竟然返回了“父类”

这是为啥呢?JS 的 this 难道不是由词法环境决定的吗?事实的确如此,this 依然是由此法环境决定的。

实际上,这时初始化 Sub 时,先会初始化父类,也就是 Base,因为构造器默认是super(...args),所以这时的 name 仍然是 父类,当初始化完成之后,才会把子类的方法和属性赋值给 Sub

评论区
推荐文章

暂无数据

Lemon1x
Lemon1x
Lv1
学生
初二的某个班长,目前为JS开发者。 知乎同名,Gitee: Lemonix,Github: Lemonix-xxx
0
文章
0
粉丝
0
获赞
热门文章

暂无数据