js學習筆記 060 子類VS組合

2021-06-18 21:18:31 字數 693 閱讀 2462

【js學習筆記】

上一節中,定義的集合可以根據特定的標準對集合成員做限制,而且使用了子類的技術來實現的這種功能,所建立的自定義子類使用了特定的過濾函式來對集合中的成員做限制。父類和過濾函式的每個組合都需要建立乙個新的類。

然而還有更好的方法來寫成這種需求,即oop中一條廣為人知的設計原則:「組合優於繼承」可以利用組合的原理定義乙個新的集合實現,它「包裝」了另外乙個集合物件,在將受限制的成員過濾掉之後會用到這個集合物件。下面將展示其工作原理。 /*

實現乙個filteredset,它包裝了乙個指定的」集合」物件,並對傳入add()方法的值應用了某種指定的過濾器,「範圍」類中其他所有的核心方法延續到包裝後的例項中 */

var filteredset = set.extend(function filteredset(set,filter),

}     }

return this; },

remove:function(),

contains:function(v),

size:function(),

foreach:function(f,c)

});這個例子使用組合的乙個好處是,只須建立乙個單獨的filteredset子類即可。可以利用這個類的例項來建立任意帶有成員限制的集合例項。

如:var s = new filteredset(new set(),function(x));

js學習筆記 058 定義子類

js的物件可以從類的原型物件中繼承屬性。如果o是類b的例項,b是a的子類,那麼o也一定從a中繼承了屬性。為此首先要確保b的原型物件繼承自a的原型物件。通過inherit 函式,可以這樣來實現 b.prototype inherit a.prototype 子類派生自父類 參見前幾章的介紹 b.pro...

python學習筆記 子類

class car def init self,make,model,year self.make make self.model model self.year year 設定預設值 self.odometer reading 0 def get descriptive name self lon...

VS學習筆記

對於vs的一天的學習,感覺這就是為我這種新手特別準備的。學習內容包括 資料型別和資料轉換 1.資料型別 1.1.資料基本型別 1.1.1整數型常用 int int32 顯示十位字元數 例 int a 1234567890 最常用 short int16 16b long int64 64b 8b 1...