面向对象

类与实例

类的声明

function Animal(){

this.name = 'name';

}

es6

class Animal2{

  constructor(){

     this.name = name

  }

}

生成实例

new Animal(‘1’)

new Animal2(‘2’)

类与继承

如何实现继承 继承的几种方式

继承的本质就是原型链

第一种(call apply 构造函数)

 apple call 的作用是改变运行的上下文,继承部分,原型对象中的方法不会被继承

将父构造函数的this指向子类的构造函数

使子类的构造函数继承父类构造函数的属性和方法

Parent1.prototype.say=function(){}

这样的不会被子类继承

第二种(借助原型链实现继承)全部继承

子类的原型对象 = 父类的实例

那么子类的实例 new Child2.__proto__ = 子类的原型对象 = 父类的实例

所以子类继承了父类的属性和方法

缺点

修改一个,另一个也会变

3.组合方式

parent.call(this) 继承方法体的属性

下面是继承原型对象中的属性

原文地址:https://www.cnblogs.com/joer717/p/10677842.html