位置: 编程技术 - 正文

学习javascript面向对象 掌握创建对象的9种方式(javascript要学到什么程度)

编辑:rootadmin

推荐整理分享学习javascript面向对象 掌握创建对象的9种方式(javascript要学到什么程度),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:javascript怎么学好,javascript要怎么学,javascript要怎么学,javascript学到什么程度,javascript要学到什么程度,javascript学了有什么用,javascript怎么学,javascript学了有什么用,内容如对您有帮助,希望把文章链接给更多的朋友!

本文为大家分享了javascript创建对象的9种方式,供大家参考,具体内容如下

【1】使用Object构造函数[缺点]使用同一个接口创建很多对象,会产生大量重复代码

【2】使用对象字面量[缺点]使用同一个接口创建很多对象,会产生大量重复代码

【3】工厂模式:抽象了创建具体对象的过程,考虑到ECMAScript中无法创建类,开发人员就发明了一种函数,用函数来封装以特定接口创建对象的细节  [缺点]解决了创建多个相似对象的问题,但没有解决对象识别的问题

【4】构造函数模式:没有显式地创建对象,直接将属性和方法赋给了this对象,没有return语句  [缺点]每个方法都要在每个实例上重新创建一遍

【4.1】构造函数拓展模式:把函数定义转移到构造函数外部[缺点1]在全局作用域中定义的函数实际上只能被某个对象调用,这让全局作用域有点名不副实[缺点2]若对象需要定义很多方法,就要定义很多全局函数,这个自定义引用类型就没有封装性可言

学习javascript面向对象 掌握创建对象的9种方式(javascript要学到什么程度)

【5】原型模式:我们创建的每个函数都有一个prototype(原型)属性,这个属性是一个指针,指向一个对象,而这个对象的用途是包含可以由特定类型的所有实例共享的属性和方法。如果按照字面意思来理解,prototype就是通过调用构造函数而创建的对象实例的原型对象

【5.1】更简单的原型模式:为了减少不必要的输入,也为了从视觉上更好地封装原型的功能,用一个包含所有属性和方法的对象字面量来重写整个原型对象。[缺点]以这种方式重设constructor属性会导致它的[[Enumerable]]特性被设置为true,默认情况下原生的constructor属性是不可枚举的

【5.2】解决enumerable问题的原型模式

[原型模式缺点1]重写原型对象切断了现有原型与已存在对象实例之间的联系,它们引用的仍是最初的原型。

[原型模式缺点2]引用类型属性的共享性问题突出

【6】组合模式:组合使用构造函数模式和原型模式是创建自定义类型的最常见方式。构造函数模式用于定义实例属性,而原型模式用于定义方法和共享的属性。这种混成模式还支持向构造函数传递参数,是用来定义引用类型的一种默认模式

【7】动态原型模式:把所有信息都封装在构造函数中,通过在构造函数中初始化原型(仅在必要情况下),又保持了同时使用构造函数和原型的优点。换句话说,可以通过检查某个存在的方法是否有效,来决定是否要初始化原型。  [注意]使用动态原型模式时,不能使用对象字面量重写原型。如果在已经创建了实例的情况下重写原型,那么就会切断现有实例与新实例之间的联系

【8】寄生构造函数模式:创建一个函数,该函数的作用仅仅是封装创建对象的代码,然后再返回新创建的对象

【寄生构造函数模式应用】创建一个具有额外方法的特殊数组。由于不能直接修改Array构造函数,因此可以使用这个模式

【9】稳妥构造函数模式:所谓稳妥对象指没有公共属性,而且其方法也不引用this的对象。稳妥对象最适合在一些安全环境中(这些环境会禁止使用this和new)或者在防止数据被其他应用程序改动时使用。

标签: javascript要学到什么程度

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

上一篇:学习javascript面向对象 理解javascript对象(javascript如何学)

下一篇:学习javascript面向对象 javascript实现继承的方式(javascript要学到什么程度)

  • 发票在系统里作用大吗
  • 计提的坏账准备可以税前扣除吗
  • 资产处置损益对损益有影响吗
  • 移动发票抬头个人税号公司能报销吗
  • 企业所得税能不能删除重新报
  • 经纪代理代订机票电了发票如何入账
  • 企业所得税纳税调整明细表
  • 单位部分承担个人借款利息个税的计算
  • 特许权使用费增值税征收品目
  • 收到软件发票怎么做账
  • 销售开红字的账务处理
  • 未分配利润如何使用投入生产
  • 应付职工薪酬账务处理例题
  • 新的企业会计准则
  • 赠品视同销售会计分录要如何编制?
  • 固定资产之前没提折旧,数额交大
  • 出租土地使用权计入什么科目
  • 投资收益率中投资总额包括哪些
  • 其他综合收益是什么类科目
  • 会计报表上总资产怎么填
  • 销售商品收到商业汇票属于什么科目
  • 工程中材料超耗怎么处理
  • 承兑跨省是不是不能用
  • 收回税款 会计分录
  • 房租费属于无形资产吗
  • 原材料报废怎么记账
  • 公司名下的车怎么上牌
  • 增值税发票遗失证明模板
  • 收到分包公司工程发票收入怎么做账
  • 不予抵扣的进项税额是什么意思
  • 清理系统所有垃圾
  • 车辆违章罚款可以报销吗
  • 员工的医药费
  • 收回贷款本息是包含本金吗
  • 无形资产的转让
  • php怎么输出中文
  • 长期借款和短期借款的区别是什么
  • 圣诞精灵什么意思
  • 开源代码网站github
  • php命令大全
  • 织梦如何给栏目增加缩略图
  • 企业成本核算应遵循
  • 进项发票数据导出
  • 小规模超500万升一般纳税人规定
  • 债权人豁免债务的账务处理会计分录
  • sql server 2008 r2数据库备份
  • 什么叫固定资产台账
  • 企业净利润流量怎么算
  • 现金比率升高
  • 运输费用怎么计算
  • 公司验资报告多少钱
  • 分期收款发出商品一批,售价50000
  • 银行询证函费用发票
  • 新会计准则报表模板
  • 企业办理名称变更怎么办
  • 小微企业应交增值税如何记账
  • 开票操作流程是什么
  • 安全生产费计提和使用
  • 怎么看财务报表平不平
  • 为什么我们需要政府
  • sql有什么
  • MySQL利用大数据技术进行回归模型的构建流程
  • ubuntu server gui
  • win8.1应用商店还能用吗
  • linux虚拟机基本操作
  • win7资源管理器频繁崩溃
  • virtualbox虚拟机菜单找不到了
  • centos停止程序
  • android开发环境搭建需要哪些工具
  • excel乱码怎么转换
  • jquery常用动画制作
  • linux中的命令及含义
  • unity3d游戏引擎支持几种平台发布?
  • jquery和dom对象之间怎么转换
  • JavaScript 2048 游戏实例代码(简单易懂)
  • vue cli3 webpack配置
  • Javascript中的this
  • 广东国家税务局网上税务服务大厅
  • 进项发票的税收分类编码怎么查询
  • 2020年南通居民医保缴费标准
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设