javascript继承的对象在分配上创建了新的数据成员?

javascript继承的对象在分配上创建了新的数据成员?,javascript,inheritance,prototypal-inheritance,Javascript,Inheritance,Prototypal Inheritance,我们的代码如下所示: var Product = function(){ } Product.prototype = { GetName: function(){ return this.name; }, name: "something" }; var Apparel = function(){ } Apparel.prototype = Object.crea

我们的代码如下所示:

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());
输出: 某物 某物 利维斯 利维斯

所以,一切都按它应该的方式运行!但是,问题是,一旦我们执行jeans.name=“Levis”赋值,我们就会在调试器中看到两个“name”。一个用于母产品,一个用于服装。那不是在浪费内存吗?由于name是父级的一个属性,所以我希望使用这个属性,而不是创建一个新的属性

你知道为什么吗

谢谢


Lior

事实上,当我完成输入时,我意识到了答案:Javascript以这种方式运行实际上是非常聪明的。如果产品将受到服装更改的影响,则任何产品衍生对象的所有后续实例都将携带任何衍生对象的最后更改

因此,它是一种典型的继承语言所需要的

谢谢大家,现在一切都清楚了。 狮子座