1. 程式人生 > >談談javascript繼承

談談javascript繼承

優化 大致 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繼承