假设在JavaScript中,我有一个类Human和另一个类Child(请不要因使用单词class而杀了我)
function Human(name){
this.name=name;
}
function Child(age){
this.age=age;
}
我可以创建一个Human对象:
var h=new Human('MyName')
和一个孩子的对象:
var c=new Child(10)
我也可以通过以下方式继承:
var ih=Object.create(h)
继承/复制创建的对象h。
但是,有没有什么方法可以创建Child
的对象并让它继承Human
类。即,我的对象应具有Human
和Child
属性。就Javascript而言,我认为这听起来像是多重继承。有没有办法实现这个目标?
答案 0 :(得分:0)
只能有一个原型,但您可以制作混合对象,如下面的代码所示:
function Human(name){ ... }
function NoiseSource(decibel){ ... }
function Child(age){ ... }
var dave = new Child(3);
$.extend(dave, new Human("Dave"));
$.extend(dave, new NoiseSource(120));
但是在你的例子中你不需要它,因为你需要Child的单个Human parent类,这可以通过常规的原型继承来实现。
答案 1 :(得分:0)
上一次stackoverflow问题: Good Example of JavaScript's Prototype-Based Inheritance
Nice Java / javascript并排代码比较: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Details_of_the_Object_Model
我建议(在您的情况下使用this.base
):
function Human(name){
this.name=name;
}
function Child(age){
this.base = Human;
this.age=age;
}
var myChild = new Child(5) // 5 yr old
myChild.name = 'Harry';
console.log( myChild );
在firefox控制台中提供:
Child { age=5, name="Harry", base=Human()}
希望有所帮助