首頁  >  文章  >  web前端  >  關於JavaScript類別的繼承(推薦)

關於JavaScript類別的繼承(推薦)

怪我咯
怪我咯原創
2017-03-31 09:37:391159瀏覽

其實最一開始學JS的時候就看過繼承的實作。當時只是去試著理解從書上看來的程式碼段落而已。今天又重新思考了一下,感覺這是一個思維探索演進的結果。

繼承,即重複使用。

如果拋開繼承的固有思想,讓b復用a的成員,最簡單粗暴的做法, b=a;

那麼,問題來了: 對b的任何改動,就是對a的改動(同一個object嘛)。

好吧,那就拷貝一份,淺拷貝不夠安全的話,就用深拷貝。

問題:程式碼是複用了,但記憶體浪費了(不管是變數還是方法,在JS中都是物件)。

不拷貝,只讀不寫,就可以用JS的原型,b.proto = a。一般我們不直接更改proto,太暴力了,JS提供了一個method可以比較「溫和」地達到目的――Object.create(b)。

關於JavaScript類別的繼承(推薦)

這個方法可行,但這只是具體物件的複用模式,如果做到「利用ConstructorB所建立的物件能重複使用ConstructorA的物件的原型」呢?

答案是:將b看成是ConstructorB.prototype,將a看成ConstructorA.prototype.

關於JavaScript類別的繼承(推薦)
##問題:


關於JavaScript類別的繼承(推薦)





關於JavaScript類別的繼承(推薦)



################################## ###########解決方法:#########申明ConstructorB的時候,系統自動會讓ConstructorB.prototype.constructor=ConstructorB; 在上面程式碼中為了複用ConstructorA.prototype , 丟掉了constructor, 補上即可。 ###############以上是最基本的繼承,關於子類別如何更通用地呼叫父類別的###建構子###及成員(如this._super),如何更通用地實現繼承模式(如A=inheritFrom(B)),等等,不在本文範圍^O^#########

以上是關於JavaScript類別的繼承(推薦)的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn