1. 程式人生 > 其它 >2021-01-07

2021-01-07

技術標籤:紅寶書javascript

【紅寶書p243繼承之盜用父類建構函式】

1,檢視繼承後,子類父類的結構

<script>
        function SuperType() {
            this.colors = ["red", "blue", "green"];
        }
        function SubType() {
            // 繼承 SuperType
            SuperType.call(this);
        }
        console.dir(SuperType);
        console.dir(SubType);
    </script>

在這裡插入圖片描述

2,檢視子類例項、父類例項的結構

 <script>
        function SuperType() {
            this.colors = ["red", "blue", "green"];
        }
        function SubType() {
            // 繼承 SuperType
            SuperType.call(this);
        }
        let sup = new SuperType();
        let sub = new SubType();
        console.dir(sup);
        console.dir(sub);
    </script>

在這裡插入圖片描述
以上看出,子類例項化後擁有父類的屬性

<script>
        function SuperType() {
            this.colors = ["red", "blue", "green"];
        }
        function SubType() {
            // 繼承 SuperType
            SuperType.call(this);
        }
        let sup = new SuperType();
        let sub = new SubType();
        // 往子類例項的colors屬性陣列中新增元素
        sub.colors.push('black');
        console.dir(sup);
        console.dir(sub);
    </script>

在這裡插入圖片描述
以上看出,子類繼承了父類屬性,但對子類屬性的操作,不會影響父類的屬性,即使父類屬性存在引用值的情況