美文网首页
20class的继承

20class的继承

作者: 我_巨可爱 | 来源:发表于2017-11-08 17:01 被阅读0次

复习

没有class和extends,使用混合继承

function Parent(name) {}
function Son(name,age) {
  // 一: 调用父类
  Parent.call(this,name)
  this.age = age
}
// 二:继承原型上方法 --- 不需要参数
Son.prototype = new Parent()

介绍

  1. 使用关键字extends
  2. 子类的constructor必须要调用super

原型

  1. js中的继承依旧是基于prototype
  2. 对子类使用Object.getPrototypeOf(SubClass)的到是父类

super 关键字

  1. super作为函数
  • 只能在构造函数中使用
  • super(param)相当于Parent.prototype.constructor.call(Son,param)
  1. super作为对象
  • 在非静态方法中,super指的是父类原型
  • 在静态方法中,super指的是父类
  • 通过super对象,调用父类方法,方法中的this绑定子类的this
  1. console.log(super)报错,因为无法判断super是对象还是函数
  2. 对象总是继承对象,对象中可以直接使用super

两条继承链

  1. Son.__proto__ == Parent
  2. Son.prototype.__proto__ == Parent.prototype
  3. 子类实例原型的原型指向父类实例的原型p1.__proto__.__proto__ = p2.__proto__

原生构造函数的继承

原生构造函数大致有,String,Number,Boolean,Array,Date,Function,Object,RegExp

  1. es5中不允许继承原生构造函数,即使使用“混合继承”的方式,新生成的类不会有原生构造函数的行为
  2. es6中允许继承原生构造函数
  3. 在继承Object类的时候有行为差异,无法通过super方法向父类Object传参

相关文章

  • 20class的继承

    复习 没有class和extends,使用混合继承 介绍 使用关键字extends 子类的constructor必...

  • 继承 继承

    属性拷贝 继承不单单能通过原型链实现,也能通过其他方式实现,属性拷贝就是其中一种方法。 通过属性拷贝也能实现继承子...

  • 继承

    继承的引入和概述 继承案例和继承的好处 继承的弊端 Java中继承的特点 继承的注意实现和什么时候使用继承 继承中...

  • python零基础13:类的继承和定制

    类的定制和继承是什么? 类的继承 类的定制 类的继承要怎么写? 继承基础语法 继承之多层继承 继承的多重继承 类的...

  • Python-学习之路-08 OOP -02

    单继承和多继承 单继承:每个类只能继承一个类 多继承:每个类可以继承多个类 单继承的多继承的优缺点 菱形继承/钻石...

  • JS的继承(原型继承与Class继承)

    一、原型继承 上面代码中,在子构造函数中调用父构造函数,并使用 call 函数传入 this,这样子构造函数就会继...

  • 原型相关(二)

    1.继承 继承方式:接口继承(只继承方法签名)实现继承(继承实际的方法)ECMAScript只支持实现继承,并且主...

  • Java面向对象三大特性之继承

    继承 一、继承的特点 Java只支持单继承单继承 多继承 单继承、多继承优缺点①单继承优点:提高了代码的复用性,让...

  • 继承(单继承,多继承)

    将共性的内容放在父类中,子类只需要关注自己特有的内容 python中所有的内容都是对象,所有的对象都直接或间接继承...

  • 继承

    常见的继承方式有 原型继承、组合继承、寄生组合继承、类的继承 ①原型继承:它的原理就是,利用原型链继承父级构造函数...

网友评论

      本文标题:20class的继承

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