Javascript不继承原型属性

Javascript不继承原型属性,javascript,inheritance,Javascript,Inheritance,为什么Javascript不能从原型继承属性 范例 它不继承属性 它意味着拥有这些属性 它不继承属性 是的,它有名字,年龄和颜色。它们没有任何价值,因为你在没有任何参数的情况下调用Man,而Boy对你提供的参数不做任何事情 您的继承设置根本不正确。应使用Object.create将父原型添加到子原型链中: 而且,与其他语言一样,您必须在应用于新子实例的子构造函数中调用父构造函数,并传递所有需要的参数: function Boy(name, age, color) { Man.call(thi

为什么Javascript不能从原型继承属性

范例

它不继承属性

它意味着拥有这些属性

它不继承属性

是的,它有名字,年龄和颜色。它们没有任何价值,因为你在没有任何参数的情况下调用Man,而Boy对你提供的参数不做任何事情

您的继承设置根本不正确。应使用Object.create将父原型添加到子原型链中:

而且,与其他语言一样,您必须在应用于新子实例的子构造函数中调用父构造函数,并传递所有需要的参数:

function Boy(name, age, color) {
  Man.call(this, name, age, color);
}
// or
function Boy() {
  Man.apply(this, arguments);
} 
更多信息:


它不继承属性。嗯,是的,它有名字,年龄和颜色。它们没有任何值,因为你在没有任何参数的情况下调用Man,而Boy对你提供的参数不做任何事情,它继承了原型。不是构造器。是的,你的权利。我将编辑我的问题。为什么它不继承属性的值呢?正如我说的:Boy对您提供的参数不做任何事情。函数为空。好的,我理解。我能继承人类的构造吗?因此,我不必每次继承原型时都编写构造函数。谢谢您的回答和额外信息。我很感激。
// => myboy {name:'hari', age:14, color:'blue'}
Boy.prototype = Object.create(
  Man.prototype,
  {constructor: {value: Boy, writable: true}}
);
function Boy(name, age, color) {
  Man.call(this, name, age, color);
}
// or
function Boy() {
  Man.apply(this, arguments);
}