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