原型模式
在上一章節中已經說過原型模式解決了構造模式和工廠模式的不足之處。
function Person(){}
Person.prototype.name ="yuan xing";
Person.prototype.age=23;
Person.prototype.job="Software engineer";
Person.prototype.displayInfo=function(){
alert(this.name+","+this.age+","+this.job+",");
}
var person=new Person()
從上述的栗子中可以看出,原型模式不會有構造函數定義多個全局函數的問題,也不會有工廠模式不能確定對象實例類型的問題。
但是從上述栗子中可以看出原型模式不能傳入參數這是原型模式
優點:語義上,看起來所有屬性都是同一個對象,解決了構造函數和工廠模式的問題;
缺點:不能通過給構造函數傳遞參數來初始化屬性的值,而且如果其中某個實例屬性重新賦值,會導致其他的實例同一屬性也會發生變化