js创建对象的几种常用方式.docxVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
js创建对象的几种常用方式

js创建对象的几种常用方式最近在看javascript高级程序设计,其中对对象的创建做了具体的阐述,综合起来,总结了下(je知识库javascript专栏由这方面的教程,有兴趣的可以去知识库看看)第一种模式:工厂方式Js代码 var lev=function(){ return 啊打; }; function Parent(){ var Child = new Object(); Child.name=李小龙; Child.age=30; Child.lev=lev; return Child; }; var x = Parent(); alert(x.name); alert(x.lev()); 说明:1.在函数中定义对象,并定义对象的各种属性,,虽然属性可以为方法,但是建议将属性为方法的属性定义到函数之外,这样可以避免重复创建该方法2.引用该对象的时候,这里使用的是 var x = Parent()而不是 var x = new Parent();因为后者会可能出现很多问题(前者也成为工厂经典方式,后者称之为混合工厂方式),不推荐使用new的方式使用该对象3.在函数的最后返回该对象4.不推荐使用这种方式创建对象,但应该了解第二种模式:构造函数方式Js代码 var lev=function(){ return 啊打; }; function Parent(){ this.name=李小龙; this.age=30; this.lev=lev; }; var x =new Parent(); alert(x.name); alert(x.lev()); 说明:1.与工厂方式相比,使用构造函数方式创建对象,无需再函数内部重建创建对象,而使用this指代,并而函数无需明确return2.同工厂模式一样,虽然属性的值可以为方法,扔建议将该方法定义在函数之外3..同样的,不推荐使用这种方式创建对象,但仍需要了解第3种模式:原型模式Js代码 var lev=function(){ return 啊打; }; function Parent(){ }; Parent.prototype.name=李小龙; Parent.prototype.age=30; Parent.prototype.lev=lev; var x =new Parent(); alert(x.name); alert(x.lev()); 说明:1.函数中不对属性进行定义2.利用prototype属性对属性进行定义3.同样的,不推荐使用这样方式创建对象第四种模式:混合的构造函数,原型方式(推荐)Js代码 function Parent(){ this.name=李小龙; this.age=32; }; Parent.prototype.lev=function(){ return this.name; };; var x =new Parent(); alert(x.lev()); 说明:1.该模式是指混合搭配使用构造函数方式和原型方式2.将所有属性不是方法的属性定义在函数中(构造函数方式)将所有属性值为方法的属性利用prototype在函数之外定义(原型方式)3.推荐使用这样方式创建对象,这样做有好处和为什么不单独使用构造函数方式和原型方式,由于篇幅问题这里不予讨论第五种模式:动态原型方式Js代码 function Parent(){ this.name=李小龙; this.age=32; ; if(typeof Parent._lev==undefined){ Parent.prototype.lev=function(){ return this.name; } Parent._lev=true; } }; var x =new Parent(); alert(x.lev()); 说明:1.动态原型方式可以理解为混合构造函数,原型方式的一个特例2.该模式中,属性为方法的属性直接在函数中进行了定义,但是因为Js代码 if(typeof Parent._lev==undefined){ Parent._lev=true;} 从而保证创建该对象的实例时,属性的方法不会被重复创建3.,推荐使用这种模式

文档评论(0)

yan698698 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档