js中構造函數和工廠函數的區別
js中構造函數和工廠函數的區別?
牧羊人nacy
2018-11-22 17:19:25
TA貢獻1836條經驗 獲得超5個贊
構造函數與工廠函數之間差異:
1.工廠函數需要創建對象,以及必須有返回值
2.工廠函數針對的都是Object的對象模型,而構造函數可以匹配自定義的對象模型
即前者不論創建什么都只有一個xx instanceof Object
而后者根據自定義名而定類型,如上舉例所示
3.構造函數弊端,如果在全局中定義相同的局部變量,容易造成全局污染,因為this.xx如果在局部獲取不到,就會去全局中獲取
4.構造函數可以重寫,可以在全局中添加新屬性和方法Person.prototype = {},但工廠函數只能在局部添加
各自適用場合:
構造函數:適應用于大型項目,屬性以及方法時常變換的項目
工廠函數:適應用于小型項目,或者正在制作過程還沒有成型的項目
舉報