建立物件的模式

2021-08-03 00:00:13 字數 1486 閱讀 4123

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 提供一種 ...