我们有一个如下所示的代码:
var Product = function(){
}
Product.prototype =
{
GetName: function(){
return this.name;
},
name: "something"
};
var Apparel = function(){
}
Apparel.prototype = Object.create(Product.prototype);
var jeans = new Apparel();
console.log(jeans.name);
console.log(jeans.GetName());
jeans.name = "Levis";
console.log(jeans.name);
console.log(jeans.GetName());
输出:Levis Levis
所以,一切正常!但是,问题是,一旦我们执行了 jeans.name = "Levis" 分配,我们就会在调试器中看到 TWO 'name's。一个用于父产品,一个用于服装。这不是浪费内存吗?由于 name 是父级的一个属性,我希望这个属性会被使用,而不是一个新的被创建。
关于为什么的任何想法?
谢谢
里奥