js设计模式

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("吃饭");

}

你可能感兴趣的:(js设计模式)