2021-01-07

本文通过示例展示了JavaScript中的继承机制,通过`SuperType.call(this)`实现子类`SubType`对父类`SuperType`的继承。子类实例化后不仅拥有父类的属性,如`colors`数组,而且对子类属性的操作不会影响父类的同名属性,即使这些属性包含引用值。这体现了JavaScript中继承的特性及其安全性。
摘要由CSDN通过智能技术生成

【红宝书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>

在这里插入图片描述
以上看出,子类继承了父类属性,但对子类属性的操作,不会影响父类的属性,即使父类属性存在引用值的情况

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值