我觀察到,通過使用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繼承實現