function
creatp
(name,age);
return o;
}var p1 = creatp('hulala',12);
function
foo()
建構函式模式缺點:每個方法都要在例項上重新建立一遍。
function
foo() {}
foo.prototype.value = 'fooproto'
原型模式缺點:例項物件對原型物件上屬性和方法時共享的,因此若原型物件上包含引用型別屬性時,乙個例項物件對這個引用型別的修復 會體現在另乙個例項物件上
function
foo()
foo.prototype.value = 'fooproto';
而對於var f = new foo(),f.value
的查詢順序為:
先查詢在建構函式初始化時檢查原型鏈是否存在某個方法,若不存在,新增到原型上即可:f
這個例項本身(例項本身屬性會覆蓋建構函式執行時賦值給例項的屬性)由於建構函式中的屬性是直接賦值給物件的,而物件的
__proto__
屬性是指向建構函式的原型物件的,所以建構函式中的屬性相當例項本身屬性,因此再查詢建構函式的屬性最後查詢原型鏈上的屬性
建構函式上直接定義的靜態屬性不會繼承下來
function
foo() }}
var foo1 = new foo();
foo1.sayvalue();//foo
在建構函式中建立空物件,同時為這個空物件新增屬性和方法,最後返回這個物件,除過用new新建物件並把這個函式叫做建構函式外和工廠模式無區別:
function
specialarray
() ;
return arr;
}var a = new specialarray('1','3','4');
a.splitpipe();//"1|3|4"
var b = specialarray('1','3','4');
b.splitpipe();//"1|3|4"
建構函式中不用this,建立新物件不用new,
function
foo(name) ;
return o;
}var f = foo('zy');
f.sayname();//zy
foo中儲存的是穩妥的物件,除過sayname方法外,沒有其他訪問name的方法。 建立物件的幾種模式
以後堅持一日一更,和大家分享我每天學習的成果及經驗,讓想要學習的小夥伴少走彎路。一 建構函式或字面量創單物件 這些方式有明顯的缺點 使用同乙個介面建立很多物件,會產生大量的重複 為了解決這個問題,出現了工廠模式。二 工廠模式 考慮在es中無法建立類 es6前 開發人員發明了一種函式,用函式來封裝以特...
javascript建立物件的模式
1 工廠模式 2 建構函式模式 3 原型模式 4 組合模式 5 動態原型模式 6 寄生建構函式模式 7 穩妥建構函式模式 工廠模式建立物件 function createobject name,job return o 把物件傳出去 建構函式模式建立物件 function person name,j...
「物件建立」模式
定義 通過 物件建立 模式繞開new,來避免物件建立 new 過程中所導致的緊耦合 依賴具體類 從而支援物件的穩定。它是介面抽象之後的第一步工作。在軟體系統中,經常面臨著建立物件的工作 由於需求的變化,需要建立的物件的具體型別經常變化。如何應對這種變化?如何繞過常規的物件建立方法 new 提供一種 ...