JS设计模式4 - The Prototype Pattern

原型模式

原型模式

目标

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

何时使用

  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可以参考

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 136,095评论 19 139
  • 1大同小异的工作周报 Sunny软件公司一直使用自行开发的一套OA (Office Automatic,办公自动化...
    justCode_阅读 4,881评论 0 3
  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 176,268评论 25 709
  • 工厂模式类似于现实生活中的工厂可以产生大量相似的商品,去做同样的事情,实现同样的效果;这时候需要使用工厂模式。简单...
    舟渔行舟阅读 12,402评论 2 17
  • 好像是五六年前吧,阿皮有一次带着十二分的喜讶之情对Ex-LG说:哇,我能听懂交响乐啦!而且不会听睡着了哦。这位一向...
    慢慢飞奔阅读 4,342评论 4 1

友情链接更多精彩内容