Posted on 2006-11-28 23:14
Jaunt 閱讀(192)
評論(0) 編輯 收藏 所屬分類:
JavaScript
? 作者:
Flyingis?
??
原載:http://m.tkk7.com/flyingis/archive/2006/07/15/58339.html??? Prototype
??? 我們了解到任何prototype的屬性和方法都會被傳遞到該類的所有實例中,利用這一特性,使用prototype也能實現繼承。
?
??? 需要注意的是,這種實現繼承的方法不能將參數傳入到ClassA的構造器中,是一個缺陷。ClassB的所有屬性和方法必需在將ClassB的 prototype對象指向ClassA的實例之后進行附值。這樣做是因為,prototype指向一個新的對象,在此之前prototype的屬性和方法都被覆蓋銷毀。
??? 對代碼進行測試:
??? 在上述代碼中可以看出,使用prototype實現繼承,instanceof操作符出現了另外的用途,在用構造起定義類實現繼承時,instanceof不會出現這種效果。但是使用prototype不能支持多重繼承。
??
??? 使用構造器定義類實現繼承和使用prototype實現繼承均存在各自的缺陷,要避免出現這些情況,只有將兩者混合使用。
??? 混合方法
??? 創建一個類的最佳方法,是使用構造器的方法去定義屬性,使用prototype定義方法。在繼承中同樣如此。