閱讀556 返回首頁    go 阿裏雲 go 技術社區[雲棲]


js中組合使用構造函數模式和原型模式創建對象

 

js中組合構造函數模式和原型模式創建對象是最常見的方法。

構造函數模式用於定義實例屬性,原型模式用於定義方法和共享屬性。優點如下

①每個實例都會有自己的一份實例屬性的副本,又同時共享對方法的引用,最大限度地節省了內存。
②這種混合模式還支持向構造函數傳遞參數。


function Student(name,age,class){
 this.name = name;
 this.age = age;
 this.class = class;
 this.friends = ["Tom","Lily"];
}

Student.prototype = {
 constructor:Student,
 sayName : function(){
  alert(this.name);
 }
}

var s1 = new Student("xy1",23,"classA");
s1.friends.push("Jerry");

var s2 = new Student("xy2",23,"classB");

alert(s1.friends);
結果"Tom,Lily,Jerry";

alert(s2.friends);
結果"Tom,Lily"

alert(s1.friends == s2.friends);
結果false

alert(s1.sayName == s2.sayName);
結果false

 

這種方式創建對象,是目前使用最廣泛,認同度最高的一種方式。甚至可以書是一種默認的模式。

 

 

最後更新:2017-04-02 16:48:12

  上一篇:go 關於模板語言Velocity的簡單例子
  下一篇:go Java中路徑的獲取總結以及URL和URI的區別