位置: 编程技术 - 正文

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日期加减)

  • 已抵扣进项税额转出怎么申报
  • 金税盘连接不上电脑是怎么回事
  • 进项税额怎么抵税
  • 资源税的纳税期限包括
  • 收到汇算清缴退款会计分录
  • 小规模纳税人企业所得税怎么计算
  • 代理记账公司账本
  • 应收账款平均余额公式
  • 税务局的信用等级是多少
  • 公司购买手机如何入账
  • 公户购买理财怎么做账
  • 为什么对子公司长投要用成本法
  • 新增资产额怎么计算
  • 企业管理费可以扣除吗
  • 冲减以前年度多计的管理费用分录
  • 一个小广告公司一年可以赚多少钱
  • 土地增值税清算管理规程
  • 不动产视同销售增值税税率
  • 当天收入支出日报表怎么做
  • 应付账款借方余额在资产负债表中怎么列示
  • 购入汽车
  • 怎么分清楚待认识的人
  • 船运费发票抵扣多少税
  • 绿化工程企业所得税减免吗
  • 出差补贴费
  • 小规模纳税人开票额度
  • 普票红冲后原件没有了怎么办
  • 建筑业跨区预缴增值税未预缴
  • 企业微信收款怎么提现
  • 营业成本主要包括
  • 融资租赁税费计算
  • 修理费应该计入什么费用
  • 法人借给公司钱怎么备注
  • php安装部署
  • 什么是主营业务税金及附加
  • 住房公积金领出来用了影响以后买房贷款吗
  • maven视频教程
  • 应收债权与应付债务
  • 应收款项减值的核算方法
  • 新成立公司实收资本没到位该怎么做账
  • 南美貘叫什么
  • 电费打发票用哪个软件
  • spring获取bean的完全限定类名
  • 前端不使用明文密码方案
  • 微擎框架破解版v2.7.7
  • 原材料用于在建工程增值税如何处理
  • 服装店快递费
  • 待摊费用在资产负债表中怎么表示
  • 什么叫财政补助收入
  • 具体包括以下哪些方面
  • 经营户个人所得税
  • sql server怎么升级版本
  • 外汇增值税是怎样计算
  • 公司半年后交五险合法吗
  • 主营业务收入计入借方还是贷方
  • 内账税金如何做分录
  • 收到采购免费赔偿怎么办
  • 工资扣税是减去五险一金吗
  • 律师咨询费计入什么科目
  • 本年利润每个月有余额吗
  • 年初建账考虑要点
  • mysql字符集的作用
  • mysql完整教程
  • 群发网址
  • windows91
  • Win10系统如何取消密码
  • freebsd安装教程
  • 怎样彻底关闭win11安全中心
  • linux网络编程视频教程
  • centos下安装windows
  • 深入理解bootstrap
  • extjs4 treepanel动态改变行高度示例
  • Zen Coding css,html缩写替换大观 快速写出html,css
  • 学习雷锋好榜样歌词
  • Node.js中的construct构造函数
  • jquery常用插件有哪些
  • 公司代扣税怎么办理
  • 农产品进项税额核定扣除
  • 河南省国家税务局官网
  • 烟叶税的意义和感悟
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设