JS 建立物件

2021-08-28 15:21:01 字數 2117 閱讀 3342

1.物件字面量

var person = 

}

2.object建構函式

var person = new object ();

person.name = "tom";

person.age = 20;

person.sayname = function ()

描述: object建構函式和物件字面量常用於建立單個物件,其中物件字面量更為常用(v)

缺點:當建立多個相似物件時,會產生大量重複的** (v)

3.工廠模式

var createperson (name, age) 

return o;

}

描述:工廠模式雖然解決了建立多個相似物件的問題,但是沒有解決物件識別的問題(v)

缺點:沒有解決物件識別問題,即無法知道乙個物件的型別 (v)

4.建構函式模式

function person (name, age) 

}

描述:通過自定義建構函式建立物件意味著它的例項物件是一種特定的型別,這正是建構函式模式勝過工廠模式的地方;(v)

建立物件的同時通過向建構函式傳遞引數初始化物件引數。(v)

缺點:若建構函式中有方法的屬性,那麼每建立乙個例項這個方法就有建立一遍,建立多個完成相同功能的函式是沒有必要的;(v)

有this物件,無需在執行**前就把函式繫結到特定物件上;(v)

若把函式定義到函式外部,那麼全域性作用域中的函式只能供特定的物件呼叫,若定義多個全域性函式,這個自定義型別就毫無封裝性可言。(v)

5.原型模式

function person () {}

person.prototype.name = "tom";

person.prototype.age = 20;

person.friends = ["lily", "marton"];

person.prototype.sayname = function ()

var person1 = new person ("tom", 20);

var person2 = new person ("zhangsan", 20)

person1.friends.push("helen");

console.log(person1.friends); //"lily", "marton", "helen"

console.log(person2.friends); //"lily", "marton", "helen"

console.log(person1.friends === person2.friends); //true

描述:例項物件一般都要有屬於自己的全部屬性,這導致了我們並不會單獨使用原型模式。

缺點:省略了為建構函式傳遞初始化引數這一步驟;所有的例項物件在預設情況下取得相同的屬性值;(v)

當通過例項物件修改原型中的屬性值時,所有例項的原型中的屬性都會改變,當這個屬性值為引用型別時,會特別糟糕。(v)

6.建構函式與原型組合模式

function person (name, age) 

person.prototype = }

var person1 = new person ("tom", 20);

var person2 = new person ("tom", 20)

person1.friends.push("helen");

console.log(person1.friends); //"lily", "marton", "helen"

console.log(person2.friends); //"lily", "marton"

console.log(person1.sayname === person.sayname); //true

描述:通過建構函式模式定義例項物件的屬性,通過原型模式定義例項物件的共享屬性。(這是目前建立物件使用最廣泛的一種方法)(v)

優點:每個例項物件都會有自己的乙份例項屬性的副本又同時共享著對方法的引用,最大限度的節省了記憶體。(v)

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.在函式中定義物件,並定義物件的各種屬性,雖然屬性可以為方法,但是建議將屬性為方法的屬性定義到函式之外,這樣可以避免重複建立該方法 ...