工廠模式:用一個函數返回一個對象。
function createPerson(name,age,job){
var o = new Object();
o.name = name;
o.age = age;
o.job = job;
o.sayName = function(){
alert(this.name)
};
return o;
}
var person1 = createPerson('chiang','21','FED')
寫一個create函數,在里面創造一個對象,給這個對象添加屬性,然后返回這個對象。這種方式可以“批量生產”,但是不能體現是誰創造的實例。所以有了構造函數模式(New)
構造函數模式
構造函數模式就是使用new關鍵字
當我們通過原型減少內存的時候造成了一些問題:
- 創建多個對象的時候需要循環
- 循環導致內存問題,于是使用原型
- 使用了原型以后需要封裝
JS之父的關懷——關鍵字New
New做了什么:
- 創造臨時對象
- 幫你綁定原型,并規定原型名字叫prototype
- 幫你return
4.new會在構造函數的prototype上加一個constructor屬性,它記錄了是誰創造的臨時對象
總的來說new就是一個語法糖,為了簡化解決工廠模式問題的代碼。