JavaScript如何借用构造函数继承

 更新时间:2019年11月06日 15:43:23   作者:好多坨屎  
这篇文章主要介绍了JavaScript如何借用构造函数继承,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下

这篇文章主要介绍了JavaScript如何借用构造函数继承,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下

借用构造函数继承是在子类型构造函数的内部调用超类型构造函数,通过使用apply()和call()方法

function girlFriend(){
    this.girls = ['chen','wang','zhu'];
  }
  function Person(){
    girlFriend.call(this,20);
  }
  var wang = new Person();
  var zhu = new Person();
  wang.girls.push('zhang');
  console.log(wang.girls);  //(4) ["chen", "wang", "zhu", "zhang"]
  console.log(zhu.girls);    //(3) ["chen", "wang", "zhu"]

通过以上代码,我们可以发现,在原型链继承中出现的问题不再出现了,这个超类不会被子类所创建的实例共享了。

借用构造函数继承的优势是可以在子类型构造函数中向超类型构造函数传递参数,例如以下代码:

function SuperType(name){
    this.name = name;
  }
  function SubType(){
    SuperType.call(this,"nick");
    this.age = 20;
  }
  var instance = new SubType();
  console.log(instance.name);    //nick
  console.log(instance.age);    //20

借用构造函数继承的问题:用构造函数继承并不能继承到超类型原型中定义的方法,例如以下代码,在girlFriends构造函数的原型中添加sayHello方法:

girlFriend.prototype.sayHello = function(){
    console.log('hello');
  }

继承它的子类构造函数的实例并不能调用到这个sayHello方法,返回的值是undefined

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

相关文章

  • 自己实现ajax封装示例分享

    自己实现ajax封装示例分享

    这篇文章主要介绍了自己实现ajax封装示例,需要的朋友可以参考下
    2014-04-04
  • 基于JavaScript实现文本一键复制和长按复制功能

    基于JavaScript实现文本一键复制和长按复制功能

    本文主要内容分三部分,第一部分是需求分析,第二部分是实现步骤,第三部分是问题详解,如果您只需要解决问题,请阅读第一、二部分即可,如果您有更多时间,进一步学习问题相关知识点,请阅读至第三部分
    2023-10-10
  • Ant Design Blazor 组件库的路由复用多标签页功能

    Ant Design Blazor 组件库的路由复用多标签页功能

    在 Ant Design Blazor 组件库中实现多标签页组件的呼声日益高涨。于是,我利用周末时间,结合 Blazor 内置路由组件实现了基于 Tabs 组件的 ReuseTabs 组件,需要的朋友跟随小编一起看看吧
    2021-07-07
  • JavaScript函数式编程(Functional Programming)组合函数(Composition)用法分析

    JavaScript函数式编程(Functional Programming)组合函数(Composition)用法分析

    这篇文章主要介绍了JavaScript函数式编程(Functional Programming)组合函数(Composition)用法,结合实例形式分析了javascript函数式编程中组合函数的概念、原理、用法及操作注意事项,需要的朋友可以参考下
    2019-05-05
  • 前端实现(excel)xlsx文件预览的详细步骤

    前端实现(excel)xlsx文件预览的详细步骤

    excel的预览库有不少,也都很强大,但是能很简单实现,下面这篇文章主要给大家介绍了关于前端实现(excel)xlsx文件预览的详细步骤,文中通过代码介绍的非常详细,需要的朋友可以参考下
    2024-03-03
  • JS操作图片(增,删,改) 例子

    JS操作图片(增,删,改) 例子

    JS操作图片(增,删,改) 例子,需要的朋友可以参考一下
    2013-04-04
  • js 键盘记录实现(兼容FireFox和IE)

    js 键盘记录实现(兼容FireFox和IE)

    用js实现键盘记录,要关注浏览器的三种按键事件类型,即keydown,keypress和keyup,它们分别对应onkeydown、onkeypress和onkeyup这三个事件句柄。一个典型的按键会产生所有这三种事件,依次是keydown,keypress,然后是按键释放时候的keyup。
    2010-02-02
  • javascript实现视频弹幕效果(两个版本)

    javascript实现视频弹幕效果(两个版本)

    这篇文章主要为大家详细介绍了javascript实现视频弹幕效果,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2019-11-11
  • javascript中创建对象的三种常用方法

    javascript中创建对象的三种常用方法

    在javascript中创建对象的三种方法,脚本之家以前发布过有简单实例版的,大家可以参考下。
    2010-12-12
  • javascript 动态修改css样式方法汇总(四种方法)

    javascript 动态修改css样式方法汇总(四种方法)

    为了达到某种特殊的效果我们需要用Javascript动态的去更改某一个标签的Css属性,如何动态修改css样式呢?面对这个问题,小编带领大家来解决javascript动态修改css样式,小伙伴们都快来学习吧
    2015-08-08

最新评论