设计模式知识连载(6)---继承_2:创建即继承-构造函数继承

<body>

<h3>设计模式知识连载(6)---继承_2:创建即继承-构造函数继承</h3>
<p></p>

<script type="text/javascript">

    /**
    *   构造函数继承--案例1:
    */
    // 声明父类
    function SuperClass(id) {
        // 引用类型共有属性
        this.books = ['JavaScript', 'HTML', 'CSS'] ;

        // 值类型共有属性
        this.id = id ;
    } ;

    // 父类声明原型方法
    SuperClass.prototype.showBooks = function() {
        console.log(this.books) ;
    } ;

    // 声明子类
    function SubClass(id) {
        // 继承父类
        // 构造函数式继承的精华
        SuperClass.call(this, id) ;
    } ;

    var subinstance1 = new SubClass(10) ;
    var subinstance2 = new SubClass(20) ;

    console.log('subinstance1.books:', subinstance1.books) ;
    console.log('subinstance1.id:', subinstance1.id) ;
    console.log('subinstance2.books:', subinstance2.books) ;
    console.log('subinstance2.id:', subinstance2.id) ;
    // subinstance1.showBooks() ;   // 报错:subinstance1.showBooks is not a function

    subinstance1.books.push('Java') ;
    console.log('subinstance1.books:', subinstance1.books) ;
    console.log('subinstance2.books:', subinstance2.books) ;

    /**
    *   缺陷:
    *   这样创建出来的每个实例都会单独拥有一份而不能共用,
    *   因此就违背了代码的复用原则
    *   
    */
</script>

</body>
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值