小编cbe*_*ger的帖子

吸气/塞特和原型链

在当前使用ES6类语法和get / set语法的JavaScript项目中,我偶然发现了我无法解释的行为。

首先,一个提取的演示可以按预期工作:

class A {
    constructor() {
        this.__value = null;
    }

    get value() {
        return this.__value;
    }

    set value(value) {
        this.__value = value;
    }
}

class B extends A { }

let b = new B();
b.value = 2;
console.log(b.value); // output: 2
Run Code Online (Sandbox Code Playgroud)

设置和获取b.value(在A.prototype中定义)有效。

现在考虑下面的演示,其中我仅将设置器从A移到了B:

class A {
    constructor() {
        this.__value = null;
    }

    get value() {
        return this.__value;
    }
}

class B extends A {
    set value(value) {
        this.__value = value;
    }
}

let b = new …
Run Code Online (Sandbox Code Playgroud)

javascript prototype getter-setter es6-class

8
推荐指数
1
解决办法
127
查看次数

标签 统计

es6-class ×1

getter-setter ×1

javascript ×1

prototype ×1