本文地址:http://www.cnblogs.com/veinyin/p/7608000.html html
爲了不大量重複代碼產生,可採用如下方法建立對象函數
1 function createPerson(name,age,job){ 2 var o = new Object(); 3 o.name = name; 4 o.age = age; 5 o.job = job; 6 return o; 7 } 8 9 var person1 = createPerson("Bob",23,"Doctor"); 10 var person2 = createPerson("Lily",21,"Student");
其實就是一個函數,在函數裏面建立一個對象,給對象賦上傳過來的值,再把這個對象返回給調用的地方。this
1 function People(name, age, job){ 2 this.name = name; 3 this.age = age; 4 this.job = job; 5 } 6 7 var people1 = new People("Bob",23,"Doctor"); 8 var people2 = new People("Lily",21,"Student");
構造函數你們都知道,C++已經學過就很少說了。spa
1 function Person(){} 2 3 Person.prototype = { 4 name: "Bob", 5 age: 23, 6 job: "Doctor" 7 }; 8 9 var people1 = new Person(); 10 11 people1.name = "Lily"; 12 people1.age = 21; 13 people1.job = "Student";
這樣把屬性也給了 prototype,不太推薦。prototype
代碼就不貼了,工廠模式的定義,可是實例化方法相似於構造函數,使用 new 關鍵字code
實際建立自定義對象時會構造函數與原型模式混合使用,構造函數定義實例屬性,原型模式定義方法和共享的屬性,這樣能夠最大限度地節約內存htm