zoukankan      html  css  js  c++  java
  • Javascript继承5:如虎添翼----寄生式继承

    /*
    * 寄生式继承
    * 其实就是对原型继承的第二次封装,在封装过程中对继承的对象进行了扩展。
    * 也存在原型继承的缺点!!
    * 这种思想的作用也是为了寄生组合式继承模式的实现。
    */
    //声明基对象
    var book = {
        name:'js book',
        alikeBook:['Html','Css']
    };
    
    //原型式继承
    function inheritObj(obj){
        //声明一个过渡函数对象
        function F(){}
        //过渡对象的原型继承父对象
        F.prototype = obj;
        //返回过渡对象的一个实例,该实例的原型继承了父对象
        return new F();
    }
    
    function createBook(obj){
        // 通过原型继承方式创建对象
        var object = new inheritObj(obj);
        // 拓展新对象
        object.getName = function(){
            console.log(this.name);
        };
        // 返回扩展后的对象
        return object;
    }
    
    var book1 = createBook(book);
    book1.name = 'css';
    book1.alikeBook.push('javascript');
    console.log(book1.alikeBook); // ['Html','Css','javascript']
    book1.getName();              // css
    
    var book2 = new createBook(book);
    book2.name = '设计模式';
    console.log(book2.alikeBook); // ['Html','Css','javascript']
    book2.getName();              // css

    设计模式中的经典笔录

  • 相关阅读:
    CSS3 @media 查询(制作响应式布局)
    seajs学习
    LABjs、RequireJS、SeaJS 区别
    jquery知识简单运用
    jquery拖拽
    选项卡简单版
    手风琴,回到顶部,无限运动
    分步运动
    多图片放大显示
    测试定时器、获取字符串的字节长度
  • 原文地址:https://www.cnblogs.com/-walker/p/9737528.html
Copyright © 2011-2022 走看看