js中使用setter方法继承属性是什么意思

可以通过Object.create()来继承创建一个对象,但通过setter方法继承属性是什么意思

var name = 'zym';
var parent = {
    set name(str) {
        name = str;
    },
    get name() {
     return name;
    }
};

var child = Object.create(parent);
console.log(child.name);
child.name = 'hello';
console.log(child.name,parent.name);

当我们定义一个对象的时候,如果动态给他加一个属性,一般来说,他会把这个属性加载到自己的身上,但是从上面的代码中可以看到,通过setter定义的变量。setter的行为是会被child继承的。也就是说父类和子类是共享这个setter的,而不会再在子类中挂在该属性。这个在es5文档的8.6.2有说到。

在当前对象的set方法中改变属性的赋值,如:this.name = super.me