JavaScript设计模式系列四:原型模式

本篇文章给大家分享的是关于javascript设计模式系列四:原型模式,有感兴趣的朋友可以看一下

本系列代码已上传到GitHub地址JavaScript设计模式demo

什么是原型模式

原型模式 (Prototype pattern):通俗点讲就是创建一个共享的原型,并通过拷贝这些原型创建新的对象。用于创建重复的对象,这种类型的设计模式属于创建型模式,它提供了一种创建对象的不错选择。

实现原型模式

我们可以通过JavaScript特有的原型继承特性去实现原型模式,也就是创建一个对象作为另一个对象的prototype属性值,我们也可以通过Object.create(prototype, optionalDescriptorObjects)来实现原型继承。

// 因为不是构造函数,所以不用大写var someCar = {    drive: function () { },    name: '马自达 3'};// 使用Object.create创建一个新车xvar anotherCar = Object.create(someCar);anotherCar.name = '丰田佳美';

登录后复制

Object.create() 方法会使用指定的原型对象及其属性去创建一个新的对象。

var vehicle = {    getModel: function () {        console.log('车辆的模具是:' + this.model);    }};var car = Object.create(vehicle, {    'id': {        value: MY_GLOBAL.nextId(),        enumerable: true  },    'model': {        value: '福特',        enumerable: true    }});

登录后复制

如果你希望自己去实现原型模式,而不直接使用Object.create。你可以使用一下代码实现。

立即学习“Java免费学习笔记(深入)”;

var vehiclePrototype = {    init: function (carModel) {        this.model = carModel;    },    getModel: function () {        console.log('车辆模具是:' + this.model);    }};function vehicle(model) {    function F() { };    F.prototype = vehiclePrototype;    var f = new F();    f.init(model);    return f;}var car = vehicle('福特Escort');car.getModel();

登录后复制

总结:

原型模式,就是创建一个共享的原型,通过拷贝这个原型来创建新的类,用于创建重复的对象,带来性能上的提升。

参考自汤姆大叔的博客设计模式之原型模式

相关推荐:

JavaScript设计模式系列一:工厂模式

JavaScript设计模式系列二:单例模式

JavaScript设计模式系列三:建造者模式

以上就是JavaScript设计模式系列四:原型模式的详细内容,更多请关注【创想鸟】其它相关文章!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至253000106@qq.com举报,一经查实,本站将立刻删除。

发布者:PHP中文网,转转请注明出处:https://www.chuangxiangniao.com/p/2776295.html

(0)
上一篇 2025年3月8日 14:46:49
下一篇 2025年3月8日 14:46:53

AD推荐 黄金广告位招租... 更多推荐

相关推荐

  • JavaScript设计模式系列五:适配器模式

    本片文章给大家分享的是javascript设计模式系列五:适配器模式,有感兴趣的朋友可以看一下 什么是适配器模式 所谓 适配器模式 就是用一个新的接口对现有的接口进行包装,处理类与API的不匹配。使用这种模式的对象又叫作包装器。比如我们有一…

    编程技术 2025年3月8日
    200
  • Ajax+json实现购物车结算

    这次给大家带来Ajax+json实现购物车结算,Ajax+json实现购物车结算的注意事项有哪些,下面就是实战案例,一起来看一下。 全选 商品 单价 数量 小计 操作 全选 删除选中产品 总价:¥0 登录后复制 body,html,ul,l…

    2025年3月8日
    200
  • JavaScript设计模式系列六:桥接模式

    本篇文章给大家分享的是javascript设计模式系列六:桥接模式 ,有感兴趣的朋友可以看一下 桥接模式 桥接(Bridge)是用于把抽象化与现实化解耦,使得二者可以独立变化,这种类型的设计模式属于结构型模式,它通过提供抽象化和现实化之间的…

    编程技术 2025年3月8日
    200
  • JavaScript设计模式七:装饰者模式

    本篇文章给大家分享了javascript设计模式七:装饰者模式,有兴趣的朋友可以看一下 装饰者模式 装饰者模式提供比继承更有弹性的替代方案。装饰者用于包装同接口的对象,用于通过重载方法的形式添加新功能,该模式可以在被装饰者的前面或后面加上自…

    编程技术 2025年3月8日
    200
  • AJAX跨域请求JSONP获取JSON数据步骤详解(附代码)

    这次给大家带来AJAX跨域请求JSONP获取JSON数据步骤详解(附代码),AJAX跨域请求JSONP获取JSON数据的注意事项有哪些,下面就是实战案例,一起来看一下。 Asynchronous JavaScript and XML (Aj…

    编程技术 2025年3月8日
    200
  • JavaScript设计模式系列八:外观模式

    本篇文章给大家分享了javascript设计模式系列八:外观模式,有感兴趣的朋友可以看一下 外观模式 外观模式是指提供一个统一的接口去访问多个子系统的多个不同的接口,为子系统中的一组接口提供统一的高层接口。使得子系统更容易使用,不仅简化类中…

    编程技术 2025年3月8日
    200
  • JS实现AJAX局部刷新(附代码)

    这次给大家带来JS实现AJAX局部刷新(附代码),JS实现AJAX局部刷新的注意事项有哪些,下面就是实战案例,一起来看一下。 AJAX即“Asynchronous Javascript And XML”(异步JavaScript和XML),…

    编程技术 2025年3月8日
    200
  • ajax响应json字符串和json数组的方法

    这次给大家带来ajax响应json字符串和json数组的方法,ajax响应json字符串和json数组的注意事项有哪些,下面就是实战案例,一起来看一下。 最近上班太忙,晚上抽空整理一下ajax请求中,后台返回json字符串和json数组的场…

    2025年3月8日
    200
  • js优化原则

    本篇文章给大家及分享的是js优化原则 ,内容挺不错的,有感兴趣的朋友可以看一下 首先,与其他语言不同,JS的效率很大程度是取决于JS engine的效率。除了引擎实现的优劣外,引擎自己也会为一些特殊的代码模式采取一些优化的策略。例如FF、O…

    2025年3月8日
    200
  • 实例详解node.js如何获取SQL Server数据库

    本篇文章给大家分享的是实例详解node.js如何获取SQL Server数据库,内容挺不错的,希望可以帮助到有需要的朋友。 1.在package里引入mssql,并且用npm install 安装 2.在module文件夹下新建一个db.j…

    编程技术 2025年3月8日
    200

发表回复

登录后才能评论