继承
首先,继承的是 属性 和 原型方法
ES6 继承
ES6:https://es6.ruanyifeng.com/#docs/class-extends
Class 可以通过
extends关键字实现继承,让子类继承父类的属性和方法子类如果写
constructor()就必须要写super(),且要写在最前面,否则报错,只有super()方法才能让子类实例继承父类。:facepunch:ps: ES6 规定,子类必须在
constructor()方法中调用super(),否则就会报错。这是因为子类自己的this对象,必须先通过父类的构造函数完成塑造,得到与父类同样的实例属性和方法,然后再对其进行加工,添加子类自己的实例属性和方法。如果不调用super()方法,子类就得不到自己的this对象。
class Parent { |
ES5 继承
js 中有很多中继承的方式,不过每一种继承方式都有优缺点,重点掌握 ES5 继承,别的继承方式基本都是 ES5 继承的语法糖
先创造子类实例,通过
Parent.call(this, arg1, arg2...)将父类的属性方法添加到this上,继承了父类的属性再通过
Son.prototype = Object.create( Father.prototype )将父类的原型继承过来最后可以通过
Son.prototype.constructor = Son将子类的原型指到子类身上
function Father(name) { |
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 EvanSky!






