Javascript 数据属性是否危险?

Javascript 数据属性是否危险?,javascript,inheritance,prototypal-inheritance,Javascript,Inheritance,Prototypal Inheritance,使用以下简单示例: var MyObject = { name: '', object_id: '', awesomeFunction: function() { console.log('awesome'); } }; 现在,在我考虑原型遗传之前,这是很好的。假设我现在要从此对象继承: var child_object = Object.create(MyObject); 这会立即导致问题,因为子对象没有指定将从父对象(原型)获取的名称和对象id属性。而且没有原生

使用以下简单示例:

var MyObject = {
    name: '',
    object_id: '',
    awesomeFunction: function() { console.log('awesome'); }
};
现在,在我考虑原型遗传之前,这是很好的。假设我现在要从此对象继承:

 var child_object = Object.create(MyObject);
这会立即导致问题,因为子对象没有指定将从父对象(原型)获取的
名称
对象id
属性。而且没有原生的方法来强制子对象是用它们自己的版本创建的,对吗

这种理解正确吗

如果是这样,我是否错误地考虑了javascript中的继承

是否应该将对象视为函数的容器

而且没有原生的方法来强制子对象是用它们自己的版本创建的,对吗

默认情况下,如果希望所有实例都具有这些属性,则不应继承它们,而应构造它们。通常的做法是

function Parent(name, id) {
    this.name = name;
    this.id   = id;
}

function Child(name, id) {
     Parent.call(this, name, id);
}

现在,当您创建
Child
的实例时,它们将拥有自己版本的
name
id
。此外,您还可以在自己创建值时为它们赋值。

赋值将转到新对象。但在此之前,
MyObject
中的更改将通过
child\u object
可见。是的,这正是我的观点。这对bug来说已经成熟了,不是吗?你在问题中说了
原型继承,但我没有看到任何原型:)那么你想实现什么?@thefourtheye-isnot Object.create这样做?