js繼承-call繼承

call繼承是在子類中把父類當做普通的函數去執行,讓父類的this指向子類的實例,相當於給子類設置了很多私有的屬性和方法。

特點:1、只能繼承私有的屬性和方法(因爲只是將父類當做普通的函數去執行,並沒有動原型鏈上的屬性)

           2、父類私有的變爲子類私有的。

<script>
    // call繼承是子類中把父類當做普通的方法執行,讓父類中的this指向子類的實例,
    // 相當於給子類的實例設置了很多私有的屬性和方法
    // 特點:1、只能繼承私有的屬性和方法(因爲是將父類當做普通的函數執行,和原型上的屬性沒有任何關係)
    // 2、父類私有的變爲子類私有的。

    function A(x) {
        this.x = x
    }
    A.prototype.getX = function () {
        console.log(this.x)
    }
    function B(y) {
        A.call(this,100)
        this.y = y
    }
    A.prototype.getY = function () {
        console.log(this.y)
    }
    var b = new B(1000);
    console.log(b.y);
    console.log(b.x)

</script>

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章