JS设计模式4 - The Prototype Pattern

2017-03-17  本文已影响56人  转角遇见一直熊

原型模式

原型模式

目标

以一个存在的对象为模板创建一个新的对象。

何时使用

  1. 新建对象的初始化过程非常昂贵,所以用克隆的方式。
  2. 希望创建一样的对象。
  3. 对象中的状态是有限的。
  4. 当要实例化的类是在运行时刻指定时,例如,通过动态装载。
  5. 当一个系统应该独立于它的产品创建,构成和表示时。

举例

1、资源优化场景。 2、类初始化需要消化非常多的资源,这个资源包括数据、硬件资源等。 3、性能和安全要求的场景。 4、通过 new 产生一个对象需要非常繁琐的数据准备或访问权限,则可以使用原型模式。 5、一个对象多个修改者的场景。 6、一个对象需要提供给其他对象访问,而且各个调用者可能都需要修改其值时,可以考虑使用原型模式拷贝多个对象供调用者使用。

代码

由于JavaScript是基于原型的语言,所以内置了原型模式。

var myCar = {
 
  name: "Ford Escort",
 
  drive: function () {
    console.log( "Weeee. I'm driving!" );
  },
 
  panic: function () {
    console.log( "Wait. How do you stop this thing?" );
  }
 
};
 
// Use Object.create to instantiate a new car
var yourCar = Object.create( myCar );
 
// Now we can see that one is a prototype of the other
console.log( yourCar.name );

总结

Object.create可以参考

上一篇下一篇

猜你喜欢

热点阅读