javascript设计模式-原型模式(prototype pattern)
为什么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)相关推荐
- C++设计模式——原型模式(Prototype Pattern)
C++设计模式--原型模式(Prototype Pattern) 微信公众号:幼儿园的学霸 目录 文章目录 C++设计模式--原型模式(Prototype Pattern) 目录 定义 代码示例 普通 ...
- 设计模式---原型模式(Prototype Pattern)
在编程中有时候我们会发现,当我们需要一个实例,可是这个实例的创建过程十分复杂,在执行过程中 会消耗大量的时间,同时创建第一个实例和创建第二个时间的初始化信息并未改变.在此种情况下,直接New 一个实例 ...
- 乐在其中设计模式(C#) - 原型模式(Prototype Pattern)
[索引页] [源码下载] 乐在其中设计模式(C#) - 原型模式(Prototype Pattern) 作者:webabcd 介绍 用原型实例指定创建对象的种类,并且通过拷贝这个原型来创建新的对象. ...
- 原型模式(Prototype Pattern)
原型模式(Prototype Pattern) 原型模式(Prototype Pattern)是用于创建重复的对象,同时又能保证性能.这种类型的设计模式属于创建型模式,它提供了一种创建对象的最佳方式. ...
- Java设计模式--原型模式Prototype
原型模式Prototype 原型模式使得用户可以通过复制对象样本来创建新对象.与通过调用构造函数创建对象相比,二者主要区别在于:通过复制创建的新对象一般会包含原始对象的某些状态. 原型模式属于对象的创 ...
- 极速理解设计模式系列:4.原型模式(Prototype Pattern)
四个角色:抽象原型角色(Prototype).具体原型角色(ConcretePrototype).原型管理器角色(PrototypeManager).客户端角色(Client) 抽象原型角色(Prot ...
- JavaScript设计模式——原型模式
原型模式 用原型实例指向创建对象的类,适用于创建新的对象的类共享原型对象的属性以及方法. JavaScript语言内部实现原型模式,在编程中使用函数的prototype共享方法就是原型模式. func ...
- 设计模式-原型模式(Prototype)
Specify the kinds of objects to create using a prototypical instance,and create new objects bycopyin ...
- 设计模式(23):创建型-原型模式(Prototype)
设计模式(Design pattern)是一套被反复使用.多数人知晓的.经过分类编目的.代码设计经验的总结.使用设计模式是为了可重用代码.让代码更容易被他人理解.保证代码可靠性. 毫无疑问,设计模式于 ...
最新文章
- Flume日志采集,avro采集,以及通过参数控制下沉到hdfs的文件大小,时间等控制
- PHP里10个鲜为人知但却非常有用的函数
- CentOS安装Nagios网络监视工具
- java 全排序_Java排序算法全
- c语言的point函数,C语言中friend友元函数详细解析
- 小学五年级计算机进度安排,苏教版小学五年级信息技术教学计划及进度安排.DOC...
- 批量重置指定域用户密码
- cisco最经典书籍 下载(全CCIE们的结晶)转载资料
- 利用SCCM 2007 软件分发
- 关于大规模 push 系统的解决方案
- 解決win7打开EXE文件总是出现安全警告
- python数据分析之(7)简单绘图pylab
- python aiohttp百万并发
- InstallShield Crack,虚拟应用程序构建可靠
- 《UnityAPI.Rect矩阵》(Yanlz+Unity+SteamVR+云技术+5G+AI+VR云游戏+Rect+Contains+Overlaps+ToString+立钻哥哥++OK++)
- eclipse调成黑色主题背景(老版本适用)
- JAVA领域10位大神
- 大数据应用型产品设计方法及行业案例介绍(附110页PPT)
- Java开源 开源工作流
- Flume之生产正确的使用方式一(Singel Agent)
热门文章
- linux centos7 iso镜像下载,CentOS Linux 7.9 (2009) iso镜像下载
- Java笔试的各种输入总结
- C语言求1000以内水仙花数
- ICMAX解析闪存芯片中原片、白片、黑片如何来的,在SSD中有什么影响
- altera fpga大小如何衡量_Xilinx和Altera FPGA的基本逻辑单元对比
- 那么问题来了? int(a/b) 和 a//b 的区别在哪里呢? 例1:
- element ui dialog custom-class不生效最终解决办法
- php大商创 安装,新零售电商系统:大商创X安装教程【宝塔环境】
- Vue源码之用户watcher
- 《阿凡达》神树成真,科学家创造出可终生发光的植物