亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

如何體現js繼承關系

發布時間:2020-09-24 14:36:19 來源:億速云 閱讀:173 作者:小新 欄目:web開發

小編給大家分享一下如何體現js繼承關系,希望大家閱讀完這篇文章后大所收獲,下面讓我們一起去探討吧!

JS作為面向對象的弱類型語言,繼承也是其非常強大的特性之一。那么如何在JS中實現繼承呢?讓我們拭目以待。

js里常用的如下兩種繼承方式:

原型鏈繼承(對象間的繼承)

類式繼承(構造函數間的繼承)

由于js不像java那樣是真正面向對象的語言,js是基于對象的,它沒有類的概念。所以,要想實現繼承,可以用js的原型prototype機制或者用apply和call方法去實現

在面向對象的語言中,我們使用類來創建一個自定義對象。然而js中所有事物都是對象,那么用什么辦法來創建自定義對象呢?這就需要用到js的原型:

我們可以簡單的把prototype看做是一個模版,新創建的自定義對象都是這個模版(prototype)的一個拷貝 (實際上不是拷貝而是鏈接,只不過這種鏈接是不可見,新實例化的對象內部有一個看不見的__Proto__指針,指向原型對象)。

js可以通過構造函數和原型的方式模擬實現類的功能。 另外,js類式繼承的實現也是依靠原型鏈來實現的。

原型式繼承與類式繼承

類式繼承是在子類型構造函數的內部調用超類型的構造函數。

嚴格的類式繼承并不是很常見,一般都是組合著用:

function Super(){
    this.colors=["red","blue"];
}
 
function Sub(){
    Super.call(this);
}

原型式繼承是借助已有的對象創建新的對象,將子類的原型指向父類,就相當于加入了父類這條原型鏈

原型鏈繼承

為了讓子類繼承父類的屬性(也包括方法),首先需要定義一個構造函數。然后,將父類的新實例賦值給構造函數的原型。代碼如下:

<script>
    function Parent(){
        this.name = 'mike';
    }
 
    function Child(){
        this.age = 12;
    }
    Child.prototype = new Parent();//Child繼承Parent,通過原型,形成鏈條
 
    var test = new Child();
    alert(test.age);
    alert(test.name);//得到被繼承的屬性
    //繼續原型鏈繼承
    function Brother(){   //brother構造
        this.weight = 60;
    }
    Brother.prototype = new Child();//繼續原型鏈繼承
    var brother = new Brother();
    alert(brother.name);//繼承了Parent和Child,彈出mike
    alert(brother.age);//彈出12
</script>

以上原型鏈繼承還缺少一環,那就是Object,所有的構造函數都繼承自Object。而繼承Object是自動完成的,并不需要我們自己手動繼承,那么他們的從屬關系是怎樣的呢?

確定原型和實例的關系

可以通過兩種方式來確定原型和實例之間的關系。操作符instanceof和isPrototypeof()方法:

alert(brother instanceof Object)//true
alert(test instanceof Brother);//false,test 是brother的超類
alert(brother instanceof Child);//true
alert(brother instanceof Parent);//true

只要是原型鏈中出現過的原型,都可以說是該原型鏈派生的實例的原型,因此,isPrototypeof()方法也會返回true。

看完了這篇文章,相信你對如何體現js繼承關系有了一定的了解,想了解更多相關知識,歡迎關注億速云行業資訊頻道,感謝各位的閱讀!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

新疆| 碌曲县| 新田县| 安顺市| 南部县| 上饶县| 扶余县| 驻马店市| 寿阳县| 尼木县| 哈尔滨市| 宜君县| 金坛市| 将乐县| 灵武市| 洪洞县| 凤凰县| 贵定县| 凉城县| 万安县| 将乐县| 宁安市| 正镶白旗| 钟祥市| 保康县| 屏南县| 西乌珠穆沁旗| 醴陵市| 濮阳市| 专栏| 彭山县| 淄博市| 库尔勒市| 灵台县| 天门市| 通辽市| 孟州市| 宣汉县| 延寿县| 绩溪县| 安宁市|