本人剛開始學習js,在《js高程》上看到了寄生組合式繼承這一節,但是對書上給出的代碼不太明白。我理解的是:寄生組合式繼承是為了避免組合繼承中實例屬性和原型對象中屬性重復的問題,它使用借用構造函數的方法繼承父類構造函數中的屬性,使用原型式繼承的方法繼承父類的原型對象。這是書上的代碼:functioninheritPrototype(SubType,SuperType){varpro=Object.create(SuperType.prototype);pro.constructor=SubType;SubType.prototype=pro;}但是,它和下面的函數有什么區別呢?functioninheritPrototype(SubType,SuperType){SubType.prototype=SuperType.prototype;SubType.prototype.constructor=SubType;}不太明白為什么要使用原型式繼承的方法繼承父類的原型,原型式繼承不就是一個淺復制嗎?這和直接賦值有什么區別呢?
JS中寄生組合式繼承中為什么要使用原型式繼承的方法繼承父類的原型呢?
翻閱古今
2019-05-14 09:42:22