具體可參考紅皮書第三版中的6.2.4章 書中的例題詳細講解了什麼是原型模式 function fop(){}; fop.prototype.name="xiaohong"; fop.prototype.age="12"; fop.prototype.sayName=function(){ conso
具體可參考紅皮書第三版中的6.2.4章
書中的例題詳細講解了什麼是原型模式
function fop(){}; fop.prototype.name="xiaohong"; fop.prototype.age="12"; fop.prototype.sayName=function(){ console.log(this.name); } var per1=new fop(); per1.sayName(); var per2=new fop(); per2.sayName();
簡單來說就是聲明一個空的方法,為其原型添加屬性和方法,那麼每一個其創建的對象實例都共用原型中的內容。
而在實際開發中更多的是構造函數與原型模式共用,構造函數中主要用來存儲創建對象實例時的屬性參數,而原型模式中則用來共用所有實例共用的方法,這樣做之後就可以創建多個擁有自己特有屬性同時又有相同方法的對象實例。如:
function foo(name,age,job){ this.name=name; this.age=age; this.job=job; } foo.prototype={ sayname:function(){ console.log(this.name) } }; var xiaoming=new foo("xiaoming","12","aa"); var zhanghong=new foo("zhanghong","12","bb"); xiaoming.sayname(); zhanghong.sayname();
在這個例子中,xiaoming和zhanghong擁有自己的姓名,年齡和工作,但是他們又同時擁有sayname這個相同的方法來輸出自己的name。