我观察到,通过使用Javascript中的“prototype”属性(并间接设置原型链),可以实现JavaScript中的多级继承。但有没有可能通过某种方式在Javascript中实现多重继承?任何简单的例子都会很棒。在Javascript中实现多继承
3
A
回答
5
为了实现简单的继承,你通常会做
MyClass.prototype = new MySuperClass();
但你也可以复制其他“类”的内容:
MyClass.prototype = new MySuperClass();
var myOtherSuperClass = new MyOtherSuperClass();
for (var key in myOtherSuperClass) {
MyClass.prototype[key] = myOtherSuperClass[key];
}
当然,你可以使用一个工具像jQuery.extend做,或者滚动你自己的。
限制是instanceof
不会检测到MyOtherSuperClass
。
1
要明确,JS没有多重继承。
每个对象只能有一个原型。
但是,由于EVERYTHING是可变的,它可以支持“mixins”,这就是扩展方法的全部内容。他们只是将一个对象的按键复制到另一个对象。虽然这不是实际的继承。通常,在该方案中,结果对象将只有一个原型,它是Object。
1
尽管只有很少的库可以实现JavaScript中的多重继承,但它是可能的。我知道的唯一例子是Ring.js。
当然,它不仅仅依靠原型,所以instanceof
不起作用。但图书馆提供了一个替代品,所以这不是什么大问题。
相关问题
- 1. 如何在JavaScript中实现继承?
- 2. 在JavaScript中实现简单继承
- 3. 如何实现JavaScript继承
- 4. 如何在C#中实现多继承?
- 5. 在arraylist中实现继承
- 6. 在MySQL中实现继承
- 7. 实现继承
- 8. 多(???)继承在Javascript
- 9. Javascript多继承
- 10. eclipselink继承实现
- 11. 最好的JavaScript继承实现
- 12. 如何实现JavaScript对象继承?
- 13. Javascript继承的实现问题
- 14. 多重继承和指针实现
- 15. 如何实现多重继承?
- 16. 这是太多的继承/实现?
- 17. JPA继承映射多个实现
- 18. javascript中的多继承
- 19. 是否在表中实现继承
- 20. 如何在hibernate中实现继承?
- 21. 继承在CoffeeScript中的实现
- 22. 在codeigniter中实现类继承
- 23. 如何在CakePHP中实现继承
- 24. 如何在GreenDao中实现表继承
- 25. 在node.js绑定中实现继承
- 26. 在Java中如何实现继承?
- 27. 在AngularJS指令中实现继承
- 28. 如何在JavaScript中实现此Java模式(使用继承)?
- 29. 实现接口和继承
- 30. 春.NET继承实现