js建立物件(js小知識)

2021-09-11 11:49:40 字數 1969 閱讀 6454

工廠模式

function

person

(name, age)

;return o;};

var p =

newperson

('viven',28

); console.

log(p.constructor == person)

;// false

工廠模式最大的問題就是不能識別物件,可以用建構函式解決。

建構函式
建構函式的建立會經歷一下幾個步驟

(1) 建立乙個新物件;

(2) 將建構函式的作用域賦給新物件(因此 this 就指向了這個新物件);

(3) 執行建構函式中的**(為這個新物件新增屬性);

(4) 返回新物件

function

person

(name, age);}

;var p =

newperson

('viven',28

);console.

log(p.constructor == person)

;// true

var p1 =

newperson

('kevin',30

);console.

log(p.sayname == p1.sayname)

;// false 不是同乙個函式。

建構函式解決了工廠函式的物件不能識別的問題,但是出現的新問題就是每次新建乙個例項就會新建乙個sayname函式,如果有很多,就會建立很多相同的函式。

以上,兩個例項的sayname函式不是同乙個,造成了資源的浪費,這就引出了原型模式。

原型模式
function

person()

; person.prototype =

}var p =

newperson()

;var p1 =

newperson()

; console.

log(p.sayname == p1.sayname)

// true 是同乙個函式

console.

log(p.constructor == person)

// false

// 因為直接用物件的方式建立原型,會改寫原型,那麼constructor指向就會切斷原聯絡,一般會這樣做

person.prototype =

} console.

log(p.constructor == person)

// true

這樣就能解決重複建立函式的問題,當然這樣就不能傳遞引數進去,進行個性化的設定,那麼我們可以使用建構函式和原型模式的組合來解決這個問題。

建構函式和原型模式的組合用法
這樣既可以個性化設定自己的屬性,同時可以節約記憶體,建立乙個公用函式。

function

person

(name, age)

; person.prototype =

}var p =

newperson

('viven',30

);var p1 =

newperson

('kevin',28

);console.

log(p.sayname == p1.sayname)

// true

以上就是js建立物件的小知識,當然最主要的了解建構函式和原型的內容。

js 建立js物件

js建立類有集中方法,我個人比較喜歡的方式是 混合的建構函式 原型方式 比較好理解 用建構函式來定義非函式屬性,用原型方式定義物件的函式屬性,結果所有函式鬥只建立一次,而每個物件鬥具有自由的物件屬性例項。function ocar color ocar.prototype.showcolor fun...

js建立物件陣列 JS 物件

定義 無序的資料集合 鍵值對集合 建立物件的方式 new 操作符 object 建立物件 var person new object person.name lisi person.age 21 person.family lida lier wangwu person.say function 2...

js 建立物件

js建立物件方式 var lev function function parent var x parent alert x.name alert x.lev 說明 1.在函式中定義物件,並定義物件的各種屬性,雖然屬性可以為方法,但是建議將屬性為方法的屬性定義到函式之外,這樣可以避免重複建立該方法 ...