談談javascript繼承
阿新 • • 發佈:2017-09-28
優化 大致 const his rip es6 ext 構造 create
javascript實現繼承大致有如下5種方式:
第1種,通過構造函數實現繼承
function Parent() { this.name = ‘parent‘ } function Child() { Parent.call(this) this.type = ‘child‘ }
第2種,通過原型鏈實現繼承
function Parent() { this.name = ‘parent‘ }function Child() { this.type = ‘child‘ } Child.prototype = new Parent() Child.prototype.constructor = Child
第3種,組合第1種和第2種方式
function Parent() { this.name = ‘parent‘ } function Child() { Parent.call(this)this.type = ‘child‘ } Child.prototype = new Parent() Child.prototype.constructor = Child
第4種,是對第3種的優化,也是推薦的方式
function Parent() { this.name = ‘parent‘ } function Child() { Parent.call(this) this.type = ‘child‘ } Child.prototype= Object.create(Parent.prototype) Child.prototype.constructor = Child
第5種,使用es6語法
class Parent { constructor() { this.name = ‘parent‘ } } class Child extends Parent { constructor() { super() this.type = ‘child‘ } }
談談javascript繼承