美文网首页
ES6学习(8)原生继承

ES6学习(8)原生继承

作者: 哆啦C梦的百宝箱 | 来源:发表于2022-05-09 11:39 被阅读0次
  1. 在es5中要实现继承,需要两个关键步骤:
    ①去继承构造函数中的成员,
    ②去继承原型对象上的成员。
  2. 对于去继承构造函数中的成员,我们可以借助apply或call方法,唯一的区别就是参数的不同,一个是数组,一个是单个传入。
  1.父类(我们把方法定义在父类上,
这会造成,每次new实例的时候就会创建一个run方法,
放到原型对象上,就会去原型对象上找)
  function Animal(name, age){
     this.age = age;
     this.name = name;
     this.run = function () {
         console.log('run');
     }
  }
  2.创建一个Dog子类
  function Dog(name, age){
     Animal.call(this, name, age);
  }
3. 缺点:每次new一个dog实例,都需要调用Animal,效率下降
  1. 去继承原型对象中的方法
关键代码:Dog.prototype = Animal.prototype
1. 通过这行代码我们可以去实现原型对象上的继承,
但是有一个缺点,就是无法实现个性化的继承。
也就是说如果我们往Dog.prototype上加一个成员,那么Animal的prototype上也会存在。
  1. 如果我们还是想实现Dog.prototype上添加而Animal上面不增加,应该如何做呢?
    需要借助一个中间夹层
function F(){}
F.prototype = Animal.prototype;
Dog.prototype = new F();
1:创建了一个新的构造函数F,让F的原型对象指向Animal的原型对象,然后让Dog的原型对象等于F的实例对象,因为F的实例对象拥有F.prototype的成员,即用于Animal.prototype的成员。

https://blog.csdn.net/Bermida/article/details/116892568

相关文章

  • ES6学习(8)原生继承

    在es5中要实现继承,需要两个关键步骤:①去继承构造函数中的成员,②去继承原型对象上的成员。 对于去继承构造函数中...

  • JS中类的继承封装和多态

    子类继承父类的属性和方法(原生继承,call继承,寄生组合继承,ES6中class类继承)原生继承:让子类的原型指...

  • JavaScript ES6 class多重继承实践与总结

    ES6中,class原生是不支持多重继承的,根据阮一峰ES6参考资料中的方法,通过以下方式即可实现class继承多...

  • 基于javascript的对象继承

    谈到继承,javascript在ES6出现之前,是不提供原生的继承机制的,这里我们将通过几种方法,来实现功能上的继...

  • 继承方式

    es6的继承: es6的继承写法简洁方便,十分直观。 es5的继承:(只推荐组合继承--最常用) 组合继承 除了S...

  • react组件

    es6 的class类的继承 运用es6 class继承 通过继承React.Component类来定义一个组件

  • 继承

    老版继承 call () ES6继承 extends 继承super 超类/父类

  • ES6之类的方式完成继承

    继承 在ES6之前要完成继承,需要写很多的代码。看下面的继承的例子: 1 继承的基本写法 如果在ES6通过类的...

  • ES6的面向对象

    ES6面向对象 [TOC] 继承:

  • 构造函数

    es5 es6 继承

网友评论

      本文标题:ES6学习(8)原生继承

      本文链接:https://www.haomeiwen.com/subject/fpqhurtx.html