1.工厂模式 =》混合模式(构造模式+原型模式)
工厂模式类似于工厂做很多的产品,产品的功能类似。
1)工厂模式基本结构如下:
var factory = function() {
var product = {};
product.phone = "ipone 7";
product.reader = "kidle";
return product;
}
以上就是工厂模式,返回是某个工厂下的产品类。
但是该模式不能很好地表现出产品类的拥有者是谁,返回结果都是对象.
2)构造模式
与工厂模式对比,构造模式有以下优点:
1. 没有return
2.能体验拥有者
3.new实例化
var people = function() {
this.name = "吕剑锋";
this.friend = "曹长春";
this.walk = function() {
console.log("走路");
}
}
构造模式每次实例化,调的walk方法都一样,但是每次实例化都重新创建方法,占用内存空间。
3)原型模式
与构造模式相比,原型模式实现了方法共享
var people = function() {
}
people.prototype.name = "吕剑锋";
people.prototype.friend = "曹长春";
people.prototype.walk = function() { console.log("走路")}
但是这种模式,所有的对象和属性都是共享的,一旦引用发生改变,所有的属性也跟着改变。
4)混合模式(构造模式+原型模式)
为了解决原型模式下的共享问题,我们使用了构造模式和原型模式混合使用
var people = function() {
this.name = "吕剑锋";
this.friend = "曹长春";
}
people.prototype.eat = function() {
console.log("吃饭");
}