位置: 编程技术 - 正文

javascript创建对象的几种模式介绍(javascript创建对象)

编辑:rootadmin

推荐整理分享javascript创建对象的几种模式介绍(javascript创建对象),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:js创建对象的方法有哪些,javascript创建对象的几种方法,JavaScript创建对象方法,JavaScript创建对象的关键字,JavaScript创建对象数组,javascript创建对象,JavaScript创建对象方法,javascript创建对象的三种方法,内容如对您有帮助,希望把文章链接给更多的朋友!

在js中有几种模式可以创建对象,通过对象操作所包含的属性与方法。

一般来说,构造函数名称的第一个字母为大写字母,非构造函数名称的第一个字母为小写字母,当然,构造函数与一般函数唯一的区别只是调用的方式不同而已,所以任何函数只要通过new来调用,那它就可以作为构造函数,若不通过new来调用,则与一般函数一样。

谈谈我对这几种模式的理解:

工厂模式:创建一个一般函数,在函数里创建一个Object对象,为这个对象增添属性与方法,同时赋予其值,最后返回对象。无法识别对象类型。

构造函数模式:创建构造函数,使用this来赋值,每当创建一个实例时,方法都被创建一次,而每个方法都执行相同的命令,这就多余了。这个缺点可以通过将方法放到全局环境中,但是,这样就没有封装性了。不过可以通过原型模式解决。

原型模式:每个函数都有一个prototype属性,该属性是一个指针,指向一个对象,该对象包含其函数创建的所有实例共享的属性与方法。

原型对象,构造函数以及实例之间的关系如下图:

图解:1:构造函数以及由构造函数创建的实例,它们的prototype属性都指向构造函数的原型对象。

2:构造函数的原型对象具有constructor属性,该属性指向构造函数。

3:构造函数的原型对象所包含的所有属性与方法可以被由构造函数所创建的所有实例共享。

javascript创建对象的几种模式介绍(javascript创建对象)

使用对象字面量重写原型对象后,constructor则指向object构造函数,若需要其指向另一构造函数,则需修改原型对象的constructor属性的值,比如:constructor:Person,这样Person的原型对象即使被重写,原型对象的constructor仍指向Person构造函数。

当先创建实例时:若是直接添加属性或方法,实例可以访问。

若是重写原型对象,则构造函数的prototype指向新的原型对象,而之前创建的实例的prototype仍指向最初的原型对象,所以实例访问不到新的原型对象的新属性或和新方法。

原型对象包含的是共享的属性与方法,那么每个实例都拥有这些信息,这样实例之间就没有什么不同了,而且还不可以传参数,这不是我们所想要的。每个实例之间有共同的信息,又有不同的信息,所以我们可以组合使用构造函数模式与原型模式。

构造函数模式与原型模式的组合使用:

态原型模式:将独立的构造函数与其原型对象结合在一起,在构造函数里初始化原型,为其添加方法。

若该方法不存在,则将其添加到原型对象上,只在初始化原型时才执行,而且只执行一次。

寄生构造函数模式:与工厂模式类似,区别为:寄生构造函数模式为构造函数,通过new来创建实例。

稳妥构造函数模式:没有公共的属性,其方法不引用this的对象。创建实例时不使用new。只能通过方法访问属性(即传入的数据)。

以上这篇javascript创建对象的几种模式介绍就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持积木网。

JavaScript中的原型继承基础学习教程 大多数编程语言中,都有类和对象,一个类可以继承其他类。在JavaScript中,继承是基于原型的(prototype-based),这意味着JavaScript中没有类,取而代之的

JavaScript中的prototype原型学习指南 原型是什么Function类型有一个属性prototype,直接翻译过来就是原型。这个属性就是一个指针,指向一个对象,这个对象包含一些属性和方法,这些属性和

详解JavaScript中的自定义事件编写 我们可以自定义事件来实现更灵活的开发,事件用好了可以是一件很强大的工具,基于事件的开发有很多优势(后面介绍)。与自定义事件的函数有Event

标签: javascript创建对象

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

上一篇:JavaScript中各种引用类型的常用操作方法小结(js中的)

下一篇:JavaScript中的原型继承基础学习教程(js中的原型是什么)

  • 不征税收入和免税收入所对应的成本与费用能否税前扣除
  • 定额备用金与非定额备用金的会计分录
  • 企业为清算状态是什么
  • 财务发票报销时限是多久
  • 公司刻一套章子多少钱
  • 天猫国际的店铺是正品吗 感觉很便宜
  • 公司的旅游费怎么处理
  • 开发间接费用的分配率为本月
  • 分配辅助生产车间成本记账凭证
  • 银行承兑汇票利息怎么算
  • 认缴制下收到股东转入的钱怎么入账
  • 专票入账暂不抵扣如何申报
  • 外地预缴个人所得税如何入账及申报
  • 职工报销费用的处理流程
  • 现金日记账本月合计图
  • 有限合伙创投企业
  • 个税少扣了怎么账平掉
  • 免征税收入和不征税收入的区别
  • 经费开支原则是什么
  • 期末增值税进项税大于销项税的金额计入哪里
  • 几个人注册公司好还是个体户好
  • 签订租赁合同的期限
  • 苹果mac os x 10.7.5
  • 补缴断交的医保划算吗
  • 超过两年的发票还可以查询吗
  • php二分查找算法两种方法
  • php二维数组的遍历
  • 小茴香的栽培技术
  • 缴纳房产税需要扣除折旧吗
  • php的implode
  • framework core
  • mysqlbinlog -vv
  • 命令启动服务管理
  • 软件开发增值税减免政策
  • 企业的工会经费可以用于什么地方
  • 所得税费用会计处理
  • 差旅费必须填写差旅费报销单吗
  • 受托方代收代缴的消费税应计入什么科目
  • 工程款增值税专用发票需要写工程名称吗
  • SQL Server 2008中SQL查询语句字段值不区分大小写的问题解决
  • 如何查询继续教育ic卡号
  • 小规模纳税人是什么意思
  • 本年利润总额是什么
  • 房地产中介公司排名
  • 开发票,对方收取税点,如何计算?
  • 工业销售产值是销售收入吗
  • 盈利性幼儿园怎么办理
  • 以前年度损失如何记账
  • 股东入股怎么做分录
  • 公司按最低标准交社保可以申请补偿吗
  • 认缴制不会带来的账务问题
  • 国外公司与国内公司签约
  • 费用多计提了怎么办
  • 企业财务会计是应用在各类企业
  • 如何优化sql语句执行效率
  • windows2003服务
  • Win10控制面板在c盘哪里
  • linux系统怎么安装
  • 电脑联想windows7
  • 进程 内核栈
  • win10安装失败
  • windows8 应用商店
  • unity3ds
  • perl use cwd
  • unity3d颜色
  • JavaScript事件处理的方式(三种)
  • Node.js中的什么模块是用于处理文件和目录的
  • jquery中ajax跨域方法实例分析
  • python xml.dom.minidom模块生成xml
  • python闭包的条件
  • 基于python的
  • 沈阳市地方税务局
  • 总包发票税率
  • 包头市税务局赵文胜
  • 增值税发票选择确认平台查询不到以开出的进项发票?
  • 境外付款需要什么手续
  • 潍坊购房政策2020
  • 税务师事务所企业组织架构
  • 余姚市税务局咨询热线
  • 众筹在中国的发展潜力
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设