我觀察到,通過使用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. 在MySQL中實現繼承
- 2. 實現繼承
- 3. eclipselink繼承實現
- 4. 最好的JavaScript繼承實現
- 5. Javascript繼承的實現問題
- 6. 多重繼承和指針實現
- 7. 這是太多的繼承/實現?
- 8. javascript中的多繼承
- 9. 在codeigniter中實現類繼承
- 10. 繼承在CoffeeScript中的實現
- 11. 如何在hibernate中實現繼承?
- 12. 在node.js綁定中實現繼承
- 13. 實現繼承與通用
- 14. 如何實現繼承
- 15. PHP類,繼承,實現
- 16. c繼承的實現
- 17. 春.NET繼承實現
- 18. 概念繼承的實現
- 19. JavaScript繼承實例屬性?
- 20. 如何在接口中使用java實現多繼承?
- 21. 在PHP中如何實現多級繼承?
- 22. 如何在代碼中實現多級繼承優先
- 23. 在VB .Net中可以實現多重繼承嗎?
- 24. 如何在Java中實現多重繼承
- 25. 接口實現與繼承在C#
- 26. 如何實現Dispose在繼承類
- 27. 繼承並實現在同一時間
- 28. 類的繼承在JavaScript中
- 29. JavaScript中的繼承
- 30. Javascript中的繼承