其實最一開始學JS的時候就看過繼承的實作。當時只是去試著理解從書上看來的程式碼段落而已。今天又重新思考了一下,感覺這是一個思維探索演進的結果。
繼承,即重複使用。
如果拋開繼承的固有思想,讓b復用a的成員,最簡單粗暴的做法, b=a;
那麼,問題來了: 對b的任何改動,就是對a的改動(同一個object嘛)。
好吧,那就拷貝一份,淺拷貝不夠安全的話,就用深拷貝。
問題:程式碼是複用了,但記憶體浪費了(不管是變數還是方法,在JS中都是物件)。
不拷貝,只讀不寫,就可以用JS的原型,b.proto = a。一般我們不直接更改proto,太暴力了,JS提供了一個method可以比較「溫和」地達到目的――Object.create(b)。
這個方法可行,但這只是具體物件的複用模式,如果做到「利用ConstructorB所建立的物件能重複使用ConstructorA的物件的原型」呢?
答案是:將b看成是ConstructorB.prototype,將a看成ConstructorA.prototype.
##問題:
以上是關於JavaScript類別的繼承(推薦)的詳細內容。更多資訊請關注PHP中文網其他相關文章!