為了避免大量重覆代碼產生,可採用以下方法創建對象 1 工廠模式 其實就是一個函數,在函數裡面創建一個對象,給對象賦上傳過來的值,再把這個對象返回給調用的地方。 2 構造函數模式 構造函數大家都知道,C++已經學過就不多說了。 3 原型模式 這樣把屬性也給了 prototype,不太推薦。 4 寄生構 ...
為了避免大量重覆代碼產生,可採用以下方法創建對象
1 工廠模式
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");
其實就是一個函數,在函數裡面創建一個對象,給對象賦上傳過來的值,再把這個對象返回給調用的地方。
2 構造函數模式
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++已經學過就不多說了。
3 原型模式
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,不太推薦。
4 寄生構造函數模式
代碼就不貼了,工廠模式的定義,但是實例化方法類似於構造函數,使用 new 關鍵字
-
實際創建自定義對象時會構造函數與原型模式混合使用,構造函數定義實例屬性,原型模式定義方法和共用的屬性,這樣可以最大限度地節約記憶體