JS 建立物件的7種方法(三)

2022-09-08 13:27:08 字數 1680 閱讀 7021

4. 組合使用建構函式模式和原型模式(hybrid)

建構函式模式用於定義例項屬性

原型模式用於定義方法和共享的屬性。

function

people(name, age, job)

people.prototype =,

sayfriends:

function

()};

var people1 = new people("bob", 19, "tester");

var people2 = new people("baby", 22, "developer");

people1.friends.push("alice");

people1.sayfriends();

//court,ann,alice

people2.sayfriends(); //

court,ann

5.動態原型模式(dynamic)

通過檢查某個應該存在的方法是否有效,來決定是否需要初始化原型。

function

people(name, age, title)

}}var people = new people("bob", 22, "developer");

people.sayname();

//bob

6.寄生建構函式(parasitic)

這種模式的基本思想是建立乙個函式,該函式的作用是封裝建立物件的**,然後再返回新建立的物件。

function

people(name, age, title)

returno;}

var people = new people("bob", 41, "doctor");

除了使用new操作符來建立新例項,這個模式和工廠模式是一樣的。

這種模式可以在特殊情況下用來為物件建立建構函式。假設我們想建立乙個具有額外方法的特殊陣列,由於不能直接修改array建構函式,因此可以使用這個模式。

function

specialarray()

return

value;

}var colors = new specialarray("red", "blue", "green");

alert(colors.topipledstring());

//red| blue| green

使用這種模式建立的物件 不能依賴instanceof操作符來確定其型別。

7.穩妥建構函式模式(durable)

穩妥建構函式遵循與寄生建構函式類似的模式,有兩點不同:

新建立物件的例項方法不引用this

不使用new操作符呼叫建構函式

function

person(name, age, title)

returno;}

var person = person("bob", 30, "software engineer");

person .sayname();

//bob

使用這種模式建立的物件 不能依賴instanceof操作符來確定其型別。

JS 建立物件的7種方法(二)

3.原型模式 prototype 我們建立的每個函式都有乙個prototype屬性,這個屬性是乙個指標,指向乙個物件。使用原型物件的好處是讓所有例項共享它所包含的屬性和方法。function person person.prototype.name bob person.prototype.age ...

JS建立物件的三種方法

工廠模式 function person name,age,job return obj var person person five 17,web person.sayname 工廠模式定義好形參之後,new乙個物件,然後return回去 即可在外部呼叫函式,然後傳入實參。即可使用函式內部的方法建...

JS建立物件的三種方法

一 工廠模式 通過函式來封裝,用object方式來建立 function creatperson name,age,job return o var person1 createperson judy 23,teacher var person2 createperson andy 21,docto...