- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
关于JS中的constructor与prototype最初对js中 object.constructor 的认识:Object(对象超类)Object ????????????????????????????????????????????含有所有JavaScript对象的特性的超类Object.constructor????????????????????????????对象的构造函数Object.hasOwnProPerty()????????????????检查属性是否被继承Object.isPrototypeOf()????????????????????一个对象是否是另一个对象的原型OpertyIsEnumerable()????????是否可以通过for/in循环看的属性Object.toLocaleString()????????????????????返回一个对象的字符串表示Object.toString()????????????????????????????定义一个对象的字符串表示Object.valueOf()?????????????????????????????指定对象的原始值?Object.constructor对象的构造函数可见性Javascript 1.1 JScript 2.0 ECMAScript v1语法object.constructor描述对象的constructor属性引用了该对象的构造函数。例如,如果用Array()构造函数创建一个数组那么a.constructor引用的就是Arraya = new Array(1,2,3)? //创建一个对象a.constructor == Array? //trueconstructor属性常用于判断未知对象的类型,给定了一个未知值,就可以使用typeof运算符来判断他是原始值还是对象,如果它是对象,就可以使用constructor属性来判断对象的类型,例如,下面的函数用来判断一个给定的值是否是数组function isArray(x){?return ((typeof x == object) (x.constructor == Array));}但要注意,虽然这种方法适用于Javascript核心语言的内部对象,但是对于“主对象”,如window这样的客户端Javascript对象,这种方法就不一定适用了,Object.toString()方法的默认实现提供了另一种判断未知对象类型的方法在学习JS的面向对象过程中,一直对constructor与prototype感到很迷惑,看了一些博客与书籍,觉得自己弄明白了,现在记录如下: 我们都知道,在JS中有一个function的东西。一般人们叫它函数。比如下面的代码function?Person(name){?alert(name);}Person(js);//js??上面的代码中,Person的表现的确跟一般的函数没有什么区别,接着看下面的代码代码function?Person(name){?=name;?this.showMe=function()?{?alert();?}};var?one=new?Person(JavaScript);one.showMe();//JavaScript??很多人见到了久违的new操作符,于是就叫Person为“类”,可是又没有关键字class的出现,觉得叫“类”有点勉强。于是退而求其次叫Person为类的构造函数。这些概念好像都没有错,之所以出现这样的情况,可能是因为大家都学习了传统的面向对象语言(c++,c#,java等),还有一种思维定势吧。为了让javascript也面向对象,要在javascript中找到与传统面向对象语言的影子。可是按照javascript的说法,function定义的这个Person就是一个Object(对象),而且还是一个很特殊的对象,这个使用function定义的对象与使用new操作符生成的对象之间有一个重要的区别。这个区别就是function定义的对象有一个prototype属性,使用new生成的对象就没有这个prototype属性。?prototype属性又指向了一个prototype对象,注意prototype属性与prototype对象是两个不同的东西,要注意区别。在prototype对象中又有一个constructor属性,这个constructor属性同样指向一个constructor对象,而这个constructor对象恰恰就是这个function函数本身。有点头晕,看下图吧:不相信可以看下面的代码:代码function?Person(name){?=name;?this.showMe=function()?
您可能关注的文档
最近下载
- 2025江苏苏州张家港市长江保坍实业有限公司招聘1人备考试题及答案解析.docx VIP
- 探讨TPACK理论在力学实验教学中的应用.docx VIP
- 2024-2025学年度工程硕士复习提分资料(名校卷)附答案详解.docx
- 江苏苏州张家港市长江保坍实业有限公司招聘笔试题库2025.pdf VIP
- 2025江苏苏州张家港市长江保坍实业有限公司招聘1人笔试历年参考题库附带答案详解.docx VIP
- Oxford学习策略量表(SILL).doc VIP
- 山东发展投资控股集团有限公司招聘笔试题库2025.pdf
- 桌面应急演练评估表.docx VIP
- 麻醉患者的护理(护理课件).ppt
- 广汽本田-奥德赛-保修手册-锐·畅享版-GHA6480BAC6AHEV-奥德赛(混动版)维修保修手册.pdf VIP
文档评论(0)