關於extend方法

轉載自:http://chinazblz.blog.163.com/blog/#m=0

爲了簡化類繼承的聲明,基於一個給定類結構創建一個新的類,把整個過程封裝在一個extend()函數裏,代碼如下:

function extend(subClass,superClass){

   //見到網上有人是這樣寫的

   //subClass.prototype=superClass.prototype;

   //subClass.prototype.constructor=subClass;

var F=function(){};

F.prototype=superClass.prototype;

subClass.prototype=new F();

subClass.prototype.constructor=subClass;

}

可以調用這個方法實現繼承:

extend(TwoDShape, Shape);    //TwoDShape繼承Shape
extend(Triangle, TwoDShape); //Triangle又繼承TwoDShape

爲什麼要定一個空的構造函數F()呢,是爲了作爲一個橋樑,不要讓子類創建父類的實例,因爲父類的實例可能會比較大,可能有些不必要的副作用,免得佔用太多的內存。轉至《JavaScript設計模式》

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章