面向对象
类与实例
类的声明
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) 继承方法体的属性
下面是继承原型对象中的属性