JavaScript中常見的設計模式(2)構造函數模式

構造函數模式

在ECMAScript中構造函數可以用來創建特定類型的對象。例如:Array Object String等的原生構造函數。

根據這一特性我們可以重寫構造函數來滿足我們的需求,代碼如下:

function Demo(name,address,time){

this.name=name;

this.address=address;

this.time=time;

//最好將函數分離出來

this.displayInfo=funtion (){

alert(this.name+","+this.address+","+this.time);

}

}

var demo1=new Demo("demo","china","2017-04-25")

1)創建一個新對象

2)構造函數的作用域賦值給新對象

3)執行構造函數中的代碼(將構造函數中的屬性賦值給新對象)

4)返回新對象

優點:將構造函數的實例標識爲一種特定的類型。

缺點:創建實例會重複的創建函數,這種創建函數的方式會導致不同的作用域鏈和標識符解析.

解決方法:

將構造函數中的內部函數提取出來成爲全局函數。

新問題:1)全局函數只是被構造函數調用,有點資源浪費。2)如果多個函數,要在外部創建多個全局函數。這樣的話就毫無封裝性了。

解決以上問題,從而誕生了原型模式。


發佈了36 篇原創文章 · 獲贊 10 · 訪問量 1萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章