4. 組合使用建構函式模式和原型模式(hybrid)
建構函式模式用於定義例項屬性
原型模式用於定義方法和共享的屬性。
functionpeople(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)
通過檢查某個應該存在的方法是否有效,來決定是否需要初始化原型。
functionpeople(name, age, title)
}}var people = new people("bob", 22, "developer");
people.sayname();
//bob
6.寄生建構函式(parasitic)
這種模式的基本思想是建立乙個函式,該函式的作用是封裝建立物件的**,然後再返回新建立的物件。
functionpeople(name, age, title)
returno;}
var people = new people("bob", 41, "doctor");
除了使用new操作符來建立新例項,這個模式和工廠模式是一樣的。
這種模式可以在特殊情況下用來為物件建立建構函式。假設我們想建立乙個具有額外方法的特殊陣列,由於不能直接修改array建構函式,因此可以使用這個模式。
functionspecialarray()
return
value;
}var colors = new specialarray("red", "blue", "green");
alert(colors.topipledstring());
//red| blue| green
使用這種模式建立的物件 不能依賴instanceof操作符來確定其型別。
7.穩妥建構函式模式(durable)
穩妥建構函式遵循與寄生建構函式類似的模式,有兩點不同:
新建立物件的例項方法不引用this
不使用new操作符呼叫建構函式
functionperson(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...