作家
登录

JavaScript六种继承方式

作者: 来源: 2017-06-26 13:42:44 阅读 我要评论

持续是面向对象编程中又一异常重要的概念,JavaScript支撑实现持续,不支撑接口持续,实现持续重要依附原型链来实现的。

原型链

起首得要明白什么是原型链,在一篇文┞仿看懂proto和prototype的关系及差别中讲得异常具体

原型链持续根本思惟就是让一个原型对象指向另一个类型的实例

  1. function SuperType() { 
  2.  
  3.   this.property = true 
  4.  
  5.  
  6. SuperType.prototype.getSuperValue = function () { 
  7.  
  8.   return this.property 
  9.  
  10.  
  11. function SubType() { 
  12.  
  13.   this.subproperty = false 
  14.  
  15.  
  16. SubType.prototype = new SuperType() 
  17.  
  18. SubType.prototype.getSubValue = function () { 
  19.  
  20.   return this.subproperty 
  21.  
  22.  
  23. var instance = new SubType() 
  24.  
  25. console.log(instance.getSuperValue()) // true  

代码定义了两个类型SuperType和SubType,每个类型分别有一个属性和一个办法,SubType持续了SuperType,而持续是经由过程创建SuperType的实例,并将该实例赋给SubType.prototype实现的。

实现的本质是重写原型对象,代之以一个新类型的实例,那么存在SuperType的实例中的所有属性和办法,如今也存在于SubType.prototype中了。

我们知道,在创建一个实例的时刻,实例对象中会有一个内部指针指向创建它的原型,进行接洽关系起来,在这里代码SubType.prototype = new SuperType(),也会在SubType.prototype创建一个内部指针,将SubType.prototype与SuperType接洽关系起来。

在前面说的组合模式(原型链+构造函数)中,持续的时刻须要调用两次父类构造函数。

添加办法

记住不克不及以字面量的情势添加,因为,膳绫擎说过经由过程实例持续本质上就是重写,再应用字面量情势,又是一次重写了,但此次重写没有跟父类有任何接洽关系,所以就会导致原型链截断。

  1. function SuperType() { 
  2.  
  3.   this.property = true 
  4.  
  5.  
  6. SuperType.prototype.getSuperValue = function () { 
  7.  
  8.   return this.property 
  9.  
  10.  
  11. function SubType() { 
  12.  
  13.   this.subproperty = false 
  14.  
  15.  
  16. SubType.prototype = new SuperType() 
  17.  
  18. SubType.prototype = { 
  19.  
  20.   getSubValue:function () { 
  21.  
  22.    return this.subproperty 
  23.  
  24.   } 
  25.  
  26.  1/7    1 2 3 4 5 6 下一页 尾页

      推荐阅读

      理解Linux的平均负载和性能监控

    在本文中,我们将解释 Linux 体系中最关键的治理义务之一——关于体系 / CPU 的负载(load)和平均负载(Load average)的机能监控。起首来看所有的类 UNIX 体系中两个重要的表述:>>>详细阅读


    本文标题:JavaScript六种继承方式

    地址:http://www.17bianji.com/lsqh/35904.html

关键词: 探索发现

乐购科技部分新闻及文章转载自互联网,供读者交流和学习,若有涉及作者版权等问题请及时与我们联系,以便更正、删除或按规定办理。感谢所有提供资讯的网站,欢迎各类媒体与乐购科技进行文章共享合作。

网友点评
自媒体专栏

评论

热度

精彩导读
栏目ID=71的表不存在(操作类型=0)