面向對象 ( OO ) 的程序設計——建立對象

本文地址:http://www.cnblogs.com/veinyin/p/7608000.html html

 

爲了不大量重複代碼產生,可採用如下方法建立對象函數

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");

其實就是一個函數,在函數裏面建立一個對象,給對象賦上傳過來的值,再把這個對象返回給調用的地方。this

 

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++已經學過就很少說了。spa

 

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,不太推薦。prototype

4 寄生構造函數模式

代碼就不貼了,工廠模式的定義,可是實例化方法相似於構造函數,使用 new 關鍵字code

  • 實際建立自定義對象時會構造函數與原型模式混合使用,構造函數定義實例屬性,原型模式定義方法和共享的屬性,這樣能夠最大限度地節約內存htm

相關文章
相關標籤/搜索