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有说到。