位置: 编程技术 - 正文

javascript设计模式之工厂模式示例讲解(js设计模式书)

编辑:rootadmin

javaScript工厂方式原始的方式因为对象的属性可以在对象创建后动态定义,这在 JavaScript 最初引入时都会编写类似下面的代码

在上面的代码中,创建对象 car。然后给它设置几个属性:它的颜色是蓝色,有四个门,每加仑油可以跑 英里。最后一个属性实际上是指向函数的指针,意味着该属性是个方法。执行这段代码后,就可以使用对象 car。不过这里有一个问题,就是可能需要创建多个 car 的实例,这显然不是很好的方式。

解决方案:工厂方法要解决该问题,开发者创造了能创建并返回特定类型的对象的工厂函数。例如,函数 createCar() 可用于封装前面列出的创建 car 对象的操作:

调用此工厂函数,将创建新对象,并赋予它所有必要的属性,给 createCar() 函数加上参数,即可为要创建的 car 对象的 color、doors 和 mpg 属性赋值。这使两个对象具有相同的属性,却有不同的属性值。该方法有个不好的地方在于每创建一个car对象(即调用一次createCar函数)都会重复的为每个对象创建showColor 方法,而这时没有必要的而事实上,每个对象都共享同一个函数。于是我们尝试在函数之外去声明其方法属性。

在工厂函数外定义对象的方法有些开发者在工厂函数外定义对象的方法,然后通过属性指向该方法,从而避免这个问题:

在上面这段重写的代码中,在函数 createCar() 之前定义了函数 showColor()。在 createCar() 内部,赋予对象一个指向已经存在的 showColor() 函数的指针。从功能上讲,这样解决了重复创建函数对象的问题;但是从语义上讲,该函数不太像是对象的方法。

推荐整理分享javascript设计模式之工厂模式示例讲解(js设计模式书),希望有所帮助,仅作参考,欢迎阅读内容。

javascript设计模式之工厂模式示例讲解(js设计模式书)

文章相关热门搜索词:js设计模式应用,js设计模式应用,JAVASCRIPT设计模式与开发实践,js的设计模式,js 设计模式,js设计模式应用,javascript 设计,JAVASCRIPT设计模式与开发实践,内容如对您有帮助,希望把文章链接给更多的朋友!

javascript日期格式化示例分享 /***格式化日期*@param{Object}ms表示指定日期与年1月1日午夜间全球标准时间的毫秒数*@returnyear-month-datehh:mm*/Util.parseToDate=function(ms){vardate=(newDate(parseInt(ms)

JS和函数式语言的三特性 首先要有一个概念:并不是一个语言支持函数,这个语言就可以叫做函数式语言。函数式语言中的函数(function),除了能被调用之外,还具有一些其他性

7个JS基础知识总结 1.如何在一个对象上添加属性?方法一:varb={};b["name"]="test";deleteb.name删除对象的属性方法二:b.name="test";2.如何判断一个变量是否声明?typeof(a)=="undefined"

标签: js设计模式书

本文链接地址:https://www.jiuchutong.com/biancheng/373745.html 转载请保留说明!

上一篇:JavaScript的21条基本知识点

下一篇:javascript日期格式化示例分享(javascript日期加减)

  • 高企入库补贴要交企业所得税吗
  • 滑准税是指关税的税率
  • 季度申报所得税费用怎么做
  • 开票软件服务费全额抵扣怎么做账
  • 专票当月认证后什么时候抵扣
  • 支付劳务派遣管理费现金流量表里放在哪里
  • 合理合法的纳税人是谁
  • 摊销折旧是什么意思
  • 应付福利费余额在借方
  • 公司 捐赠
  • 购车 买车
  • 退回其他单位服务费怎么入账?
  • 2021年个体工商户的税率是多少
  • 公司入职员工
  • 小规模纳税人月销售额不超过10万免征
  • 现金为负数时怎么做账
  • 个税逾期申报怎么缴纳罚款
  • 发票金额与实际付款金额不一致
  • 在Win10系统中卸载最近更新的补丁并重启电脑
  • 长时间不操作电动座椅会发生什么
  • 单位车辆车船税缴纳
  • 超市一般纳税人账务处理
  • 没有取得发票的支出可以做成本吗
  • mssvr.exe - mssvr是什么进程 什么用
  • 加工制造业包括
  • 结转销售原材料会计分录
  • vue antdesign
  • vue使用技巧
  • 安博塞利国家公园简介
  • 企业重组特殊性税务处理计税基础
  • 收到车险发票含增值税吗
  • discuz安装使用教程
  • 增值税申报表中销售额
  • 企业自建房出售给员工个人后还需要缴纳土地使用税么
  • 在建工程预付款超过审计价怎么办
  • 差旅费津贴与差旅费补助
  • 购买需要安装的设备计入什么科目
  • 金税三期开票流程
  • 帝国cms手机版制作
  • 季度所得税收入多报,年度可以调整吗
  • 小微企业如何升级一般纳税人
  • server更改密码
  • 商品入库进项税不抵扣会计分录
  • 纳税对象的类型不包括
  • 个体的个人所得税怎么交税?
  • 对账结算流程
  • 长期待摊费用会计分录
  • 现金比率升高
  • 企业办公楼房产税如何征收
  • 劳务报酬与经营所得
  • 期末未缴税额为正是什么意思
  • 摊销本月的广告费合理吗
  • 开票软件信息备份怎么备份
  • 建设工程毛利率如何计算
  • 账本页面设置
  • 明细账的作用
  • WINDOWS系统无法正常启动
  • win8.1怎么关闭更新
  • Windows Server 2003下DHCP服务器的安装与简单配置图文教程
  • fedora update-grub
  • 虚拟机基本知识
  • 怎么用老毛桃u盘装win7系统 老毛桃u盘装win7系统教程图解
  • bios识别不了硬盘怎么回事
  • 深度u盘装xp系统教程
  • win10安装office2016无法注册字体可以忽略吗?
  • pcc是什么文件
  • unity如何合并物体
  • IE6/IE7/IE8/IE9中tbody的innerHTML不能赋值的完美解决方案
  • 基于jPlayer三分屏的制作方法
  • Node.js中的全局对象有
  • nodejs怎么读
  • a标签跳转本地html页面
  • 多个javascript 合并
  • linux给本地用户发邮件
  • javascript 默认参数
  • 广东电子税务局手机版
  • 一般纳税人出售房产怎么开票
  • 在企业内部具有行使否决权的是
  • 个人扣缴客户端怎样迁移信息
  • 签订设计合同
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设