js之繼承

小白要努力i發表於2020-10-01

js繼承概念

js裡常用的如下兩種繼承方式:
1.通過原型鏈方式實現繼承(物件間的繼承)
2. 類式繼承(建構函式間的繼承)

原型鏈

建構函式、原型、例項的關係:
每個建構函式都有一個原型物件(prototype),原型物件都包含一個指向建構函式的指標(constructor),
而例項都包含一個指向原型物件的內部指標(__proto__)。

(每個物件都有一個內部屬性__proto__屬性,屬性的值可以是一個物件,也可以是null.如果它的值是一個物件,則這個物件也一定有自己的原型.
這樣就形成了一條線性的鏈,我們稱之為原型鏈)

原型鏈繼承

例子:
 function Parent() {
            this.hobby="play";
        }
        Parent.prototype.showHobby=function () {
            return this.hobby;
        }
        function Son() {
            this.sonhobby="eat";
        }
        //實現繼承  ,繼承Parent
        Son.prototype=new Parent();
        Son.prototype.showSonhobby=function () {
            return this.sonhobby;
        }
        var obj=new Son();
        alert(obj.showHobby())
        for(var i in obj){
            document.write(i+"---"+obj[i]+"<br>");
        }

原型鏈繼承關係圖

在這裡插入圖片描述

相關文章