1.工廠模式 =》混合模式(構(gòu)造模式+原型模式)
工廠模式類似于工廠做很多的產(chǎn)品特咆,產(chǎn)品的功能類似。
1)工廠模式基本結(jié)構(gòu)如下:
var factory = function() {
? ? ?var product = {};
? ? ? product.phone = "ipone 7";
? ? ? product.reader = "kidle";
? ? ? return product;
}
以上就是工廠模式高氮,返回是某個工廠下的產(chǎn)品類。
但是該模式不能很好地表現(xiàn)出產(chǎn)品類的擁有者是誰戳护,返回結(jié)果都是對象.
2)構(gòu)造模式
與工廠模式對比嚎货,構(gòu)造模式有以下優(yōu)點:
1. 沒有return
2.能體驗擁有者
3.new實例化
var people = function() {
this.name = "呂劍鋒";
this.friend = "曹長春"虑凛;
this.walk = function() {
console.log("走路")碑宴;
}
}
構(gòu)造模式每次實例化,調(diào)的walk方法都一樣桑谍,但是每次實例化都重新創(chuàng)建方法延柠,占用內(nèi)存空間。
3)原型模式
與構(gòu)造模式相比锣披,原型模式實現(xiàn)了方法共享
var people = function() {
}
people.prototype.name = "呂劍鋒"贞间;
people.prototype.friend = "曹長春";
people.prototype.walk = function() { console.log("走路")}
但是這種模式贿条,所有的對象和屬性都是共享的,一旦引用發(fā)生改變增热,所有的屬性也跟著改變整以。
4)混合模式(構(gòu)造模式+原型模式)
為了解決原型模式下的共享問題,我們使用了構(gòu)造模式和原型模式混合使用
var people = function() {
this.name = "呂劍鋒";
this.friend = "曹長春";
}
people.prototype.eat = function() {
console.log("吃飯")峻仇;
}