作家
登录

JavaScript六种继承方式

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

传递参数

借助构造函数还有一个优势就是可以传递参数

  1. var person = { 
  2.  
  3.   name'Jiang'
  4.  
  5.   friends: ['Shelby''Court'
  6.  
  7.  
  8. var anotherPerson = Object.create(person) 
  9.  
  10. console.log(anotherPerson.friends)  // ['Shelby''Court' 
  1. function SuperType(name) { 
  2.  
  3.   this.name = name 
  4.  
  5.  
  6. function SubType() { 
  7.  
  8.   // 持续SuperType 
  9.  
  10.   SuperType.call(this, 'Jiang'
  11.  
  12.   
  13.  
  14.   this.job = 'student' 
  15.  
  16.  
  17. var instance = new SubType() 
  18.  
  19. console.log(instance.name)  // Jiang 
  20.  
  21. console.log(instance.job)   // student  

问题

如不雅仅仅借助构造函数,办法都在构造函数中定义,是以函数无法达到复竽暌姑

组合持续(原型链+构造函数)

组合持续是将原型链持续和构造函数结合起来,大年夜而发挥二者之长的一种模式。

思路就是应用原型链实现对原型属性和办法的持续,而经由过程借用构造函数来实现对实例属性的持续。

如许,既经由过程在原型上定义办法实现了函数复竽暌姑,又可以或许包管每个实例都有它本身的属性。

  1. function SuperType(name) { 
  2.  
  3.   this.name = name 
  4.  
  5.   this.colors = ['red''blue''green'
  6.  
  7.  
  8. SuperType.prototype.sayName = function () { 
  9.  
  10.   console.log(this.name
  11.  
  12.  
  13. function SubType(name, job) { 
  14.  
  15.   // 持续属性 
  16.  
  17.   SuperType.call(this, name
  18.  
  19.   
  20.  
  21.   this.job = job 
  22.  
  23.  

  24.   推荐阅读

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

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


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

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

关键词: 探索发现

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

网友点评
自媒体专栏

评论

热度

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