为什么80%的码农都做不了架构师?>>>   

简单的说就是基于一个创建好的对象作为一个模板(原型)来创建其他的对象。

通过Object.create()实现方式

// 1) Object.create(prototypeObject)
var someCar = {drive: function() {},name: 'Mazda 3'
};
var anotherCar = Object.create(someCar);// 2) Object.create(prototypeObject, otherProperties)
var vehicle = {getModel: function () {console. log('The model of this vehicle is..' + this.model);}
};
var car = Object. create(vehicle, {'id' : {value: MY_GLOBAL.nextId(),enumerable: true},'model' : {value: 'Ford' ,enumerable: true}
});

备选实现方式

var vehiclePrototype = {init: function (carModel) {this.model = carModel;},getModel: function () {console. log('The model of this vehicle is..' + this. model);}
};
function vehicle(model) {// 创建构造函数function F() {};// 通过设置构造函数的原型属性来连接原型对象F.prototype = vehiclePrototype;// 使用构造函数创建对象var f = new F();// 初始化对象,这里不是原型设计模式部分f.init(model);// 返回创建好的对象 return f;
}
var car = vehicle('Ford Escort');
car.getModel();

不包含初始化代码的最简实现

var beget = (function () {function F() {}return function (proto) {F.prototype = proto;return new F();};
})();

转载于:https://my.oschina.net/osmos/blog/386809

javascript设计模式-原型模式(prototype pattern)相关推荐

  1. C++设计模式——原型模式(Prototype Pattern)

    C++设计模式--原型模式(Prototype Pattern) 微信公众号:幼儿园的学霸 目录 文章目录 C++设计模式--原型模式(Prototype Pattern) 目录 定义 代码示例 普通 ...

  2. 设计模式---原型模式(Prototype Pattern)

    在编程中有时候我们会发现,当我们需要一个实例,可是这个实例的创建过程十分复杂,在执行过程中 会消耗大量的时间,同时创建第一个实例和创建第二个时间的初始化信息并未改变.在此种情况下,直接New 一个实例 ...

  3. 乐在其中设计模式(C#) - 原型模式(Prototype Pattern)

    [索引页] [源码下载] 乐在其中设计模式(C#) - 原型模式(Prototype Pattern) 作者:webabcd 介绍 用原型实例指定创建对象的种类,并且通过拷贝这个原型来创建新的对象. ...

  4. 原型模式(Prototype Pattern)

    原型模式(Prototype Pattern) 原型模式(Prototype Pattern)是用于创建重复的对象,同时又能保证性能.这种类型的设计模式属于创建型模式,它提供了一种创建对象的最佳方式. ...

  5. Java设计模式--原型模式Prototype

    原型模式Prototype 原型模式使得用户可以通过复制对象样本来创建新对象.与通过调用构造函数创建对象相比,二者主要区别在于:通过复制创建的新对象一般会包含原始对象的某些状态. 原型模式属于对象的创 ...

  6. 极速理解设计模式系列:4.原型模式(Prototype Pattern)

    四个角色:抽象原型角色(Prototype).具体原型角色(ConcretePrototype).原型管理器角色(PrototypeManager).客户端角色(Client) 抽象原型角色(Prot ...

  7. JavaScript设计模式——原型模式

    原型模式 用原型实例指向创建对象的类,适用于创建新的对象的类共享原型对象的属性以及方法. JavaScript语言内部实现原型模式,在编程中使用函数的prototype共享方法就是原型模式. func ...

  8. 设计模式-原型模式(Prototype)

    Specify the kinds of objects to create using a prototypical instance,and create new objects bycopyin ...

  9. 设计模式(23):创建型-原型模式(Prototype)

    设计模式(Design pattern)是一套被反复使用.多数人知晓的.经过分类编目的.代码设计经验的总结.使用设计模式是为了可重用代码.让代码更容易被他人理解.保证代码可靠性. 毫无疑问,设计模式于 ...

最新文章

  1. Flume日志采集,avro采集,以及通过参数控制下沉到hdfs的文件大小,时间等控制
  2. PHP里10个鲜为人知但却非常有用的函数
  3. CentOS安装Nagios网络监视工具
  4. java 全排序_Java排序算法全
  5. c语言的point函数,C语言中friend友元函数详细解析
  6. 小学五年级计算机进度安排,苏教版小学五年级信息技术教学计划及进度安排.DOC...
  7. 批量重置指定域用户密码
  8. cisco最经典书籍 下载(全CCIE们的结晶)转载资料
  9. 利用SCCM 2007 软件分发
  10. 关于大规模 push 系统的解决方案
  11. 解決win7打开EXE文件总是出现安全警告
  12. python数据分析之(7)简单绘图pylab
  13. python aiohttp百万并发
  14. InstallShield Crack,虚拟应用程序构建可靠
  15. 《UnityAPI.Rect矩阵》(Yanlz+Unity+SteamVR+云技术+5G+AI+VR云游戏+Rect+Contains+Overlaps+ToString+立钻哥哥++OK++)
  16. eclipse调成黑色主题背景(老版本适用)
  17. JAVA领域10位大神
  18. 大数据应用型产品设计方法及行业案例介绍(附110页PPT)
  19. Java开源 开源工作流
  20. Flume之生产正确的使用方式一(Singel Agent)

热门文章

  1. linux centos7 iso镜像下载,CentOS Linux 7.9 (2009) iso镜像下载
  2. Java笔试的各种输入总结
  3. C语言求1000以内水仙花数
  4. ICMAX解析闪存芯片中原片、白片、黑片如何来的,在SSD中有什么影响
  5. altera fpga大小如何衡量_Xilinx和Altera FPGA的基本逻辑单元对比
  6. 那么问题来了? int(a/b) 和 a//b 的区别在哪里呢? 例1:
  7. element ui dialog custom-class不生效最终解决办法
  8. php大商创 安装,新零售电商系统:大商创X安装教程【宝塔环境】
  9. Vue源码之用户watcher
  10. 《阿凡达》神树成真,科学家创造出可终生发光的植物