js原型链继承方式解析.docVIP

  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原型链继承方式解析

在面向对象语言中,继承有两种形式:1.接口继承; 2.实现继承。在js中只有实现继承。 利用原型链来实现继承,基本思想是:利用原型让一个引用类型继承另一个引用类型的属性和方法。 代码如下: Java代码 ? HYPERLINK javascript:void() \o 收藏这段代码 ??function?superClass?(){ ?? ????????this.property1?=?true; ?? ????}?? ?? ????superClass.prototype.method1?=?function?(){ ?? ????????console.log(superClass?method1); ?? ????} ?? ????superClass.prototype.method2?=?function?(){ ?? ????????console.log(superClass?method2); ?? ????}?? Java代码 ? HYPERLINK javascript:void() \o 收藏这段代码 ????function?subClass?(){ ?? ????????this.property2?=?false; ?? ????} ?? ????subClass.prototype?=?new?superClass(); ?? ????subClass.prototype.method1?=?function?(){ ?? ????????console.log(subClass?method1); ?? ????} ?? ????subClass.prototype.method3?=?function?()?{ ?? ????????console.log(subClass?method3); ?? ????}?? Java代码 ? HYPERLINK javascript:void() \o 收藏这段代码 ????var?superclass?=?new?superClass?(); ?? ????superclass.method1();????????????????????????//superClass?method1 ?? ????superclass.method2();????????????????????????//superClass?method2 ?? ????var?subclass?=?new?subClass?(); ?? ????subclass.method1();??????????????????????????//subClass?method1 ?? ????subclass.method2();??????????????????????????//superClass?method2 ?? ????subclass.method3();??????????????????????????//subClass?method3??? ? 上面的例子中subClass继承了superClass中的method1 和method2 两个方法,并且重写了method1方法。增加了自己的method3 方法。 ? subClass 继承的时候其实是重写了原型对象,使prototype指向了superClass 的一个实例。 ? 原来存在与superclass的实例中的属性和方法,现在也存在与subClass.prototype中。 ?即:原来在superClass中为实例属性和方法,现在为subClass中为原型属性和方法。 ? 他们的关系如图: ? 上面的代码我们并没有使用 subClass 默认提供的原型,而是给它换成了一个新的原型。这个原型就是 superClass 的一个实例。 于是新的原型就有了 superClass 的实例所拥有的所有的属性和方法。而且内部还有一个指针指向了superClass 的原型。 最终的结果是:subclass 指向了 subClass 的原型,subClass 的原型指向了 superClass 的原型。 method2 方法还是存在于 superClass 方法中。但是 property1 存在于 subClass.prototype 中。这是因为 property1 是一个实例属性而 method2 为原型方法。 ? 在 superClass 中的 method1 不能被 subclass 访问到,是因为原型的搜索机制导致的。 原型机制的搜索机制为:每当读取某个对象的属性或者方法的时候,都会先搜索实例中是否有该属性或者方法,如果没有继续搜索原型中的属性或者方法,如果还是没有则继续向下搜索,直到 Object

文档评论(0)

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

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

版权声明书
用户编号:6111134150000003

1亿VIP精品文档

相关文档