js學習筆記 057 建構函式過載和工廠方法

2021-09-30 10:45:07 字數 698 閱讀 6057

通過過載建構函式讓它根據傳入引數的不同來執行不同的初始化方法。如set建構函式

function set();

this.n = 0;

if(arguments.length==1 && isarraylike(arguments[0]))else if(arguments.length>0)  }

這段**所定義的

set建構函式可以顯式將一組元素作為引數列表傳入,也可以傳入元素組成的陣列。但是函式函式有多義性,如果集合的某個成員是乙個陣列就無法通過這個建構函式來建立集合啦。

下面這個工廠方法用來通過陣列初始化set物件:

set.fromarray= function(a)

可以給工廠方法定義任意的名字,不同名字的工廠方法用以執行不同的初始化,但由於建構函式是類的公有標識,因此每個類只能有乙個建構函式。但這並不是乙個「必須遵守」的規則。

在js中是可以定義多個建構函式繼承自乙個原型物件的,如果這樣做的話,由這些建構函式的任意乙個所建立的物件都屬於同一型別。不推薦這樣使用,但下例**使用這種技術定義了該類的乙個輔助建構函式:

function setfromarray(a)

setfromarray.prototype =set.prototype;

var s = new setfromarray([1,2,3]);

s instanceof set ; //=>true

建構函式過載

using system using system.data using system.configuration using system.collections using system.web using system.web.security using system.web.ui usin...

建構函式過載

include using namespace std class clock clock h 0 m 0 s 0 預設建構函式的賦值操作 inline void showtime private int h,m,s intmain 建構函式的過載實現!在上述案例中,c1的建構函式帶有引數,而c2是...

JS筆記 6 建構函式

建構函式的this是當前類的例項 2.建構函式執行獨有 在js 自上而下執行之前,首先在當前形成的私有棧中建立乙個物件 建立乙個堆記憶體 暫時不儲存任何的東西 並且讓函式中的執行主體 this 指向這個新的堆記憶體 當前類的例項 this 建立的物件 3.自上而下執行 4.建構函式執行獨有 執行完成...