位置: 编程技术 - 正文

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

  • 出口免税产品如何缴纳附加税
  • 清算组的性质
  • 会计凭证销毁方法
  • 跨月如何开具增值税发票
  • 库存现金是负数怎么调
  • 生产经营年度汇缴申报时间
  • 购土地契税怎么算
  • 企业自建房产提成多少
  • 安全费用提取使用管理办法2022 136
  • 补交增值税如何入账
  • 出售二手车税收优惠
  • 策划费收费标准
  • 免抵税额计入什么科目
  • 董事会费汇算清缴计入什么科目
  • 公司支付给个人的货款怎么入账
  • 营改增后城建税和教育费附加包含在哪里
  • 农村合作社补贴政策
  • 什么是会计凭证?会计凭证有哪些作用?
  • 个人开票给公司个人所得税怎么扣
  • mac系统的桌面
  • 开办费计入长期待摊费用汇算清缴时怎么填写
  • php快递查询系统
  • yolov5模型训练
  • 补缴企业所得税和滞纳金如何入账
  • 小规模纳税人的个人所得税怎么算
  • 委托加工物资增值税计税依据
  • 支付运费的会计处理
  • 建筑行业现在还能斤不
  • php判断是否连接数据库
  • react usereducer
  • session用处
  • 分公司可以开基本账户吗
  • 在职工教育经费包括哪些
  • 纳税人提供技术开发服务
  • 应交税费月末要结平
  • 招待费进项转出填表二哪里
  • 用python创建一个列表
  • 公司注销单位公积金账户余额怎么处理
  • 预付款已经开了发票要怎么做账
  • 企业所得税税前扣除管理办法2018
  • 企业所得税扣除项目
  • 固定资产减值准备借贷方向
  • 企业非流动资产包括
  • 中级会计职称与中级会计师的区别
  • 收款收据写着投诉有用吗
  • 会计学营业利润
  • 税务局手续费返还什么时间到账
  • 大额装修费按几年摊销
  • 固定资产折旧计算表模板
  • 企业零申报要报哪些税
  • 减免税款借方余额
  • 建账初期账务处理程序
  • sql server查询数据库大小
  • mysql ERROR 1044 (42000): Access denied for user ''@'localhost' to database
  • 关闭默认共享的影响
  • 如何制作u盘系统win7
  • 卡巴斯基key
  • ubuntu ftp服务开启
  • win10怎么查看windows版本
  • 进程acore已停止一直出现怎么办
  • w7打穿越火线
  • mac terminal在哪里
  • win8怎么安装微信
  • 无法打开opencv2
  • 照相机文件名
  • win10 ie桌面图标
  • 诺基亚安装ngage
  • win8怎么找开始程序
  • Tutorial 7 Rotation Transformation
  • js设计模式有什么用
  • config_system_switchs
  • dos脚本 菜鸟教程
  • 批处理修改文件后缀名
  • redis基础教程
  • android 图片视频轮播框架
  • jquery常用插件有哪些
  • 产品税务编号查询系统官网
  • 广西税务12366如何查看代他人缴费发票
  • 辽宁省地税社保缴费基数
  • 广西地方税务局2017年公务员拟录用
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设