Javascript继承5:如虎添翼----寄生式继承

Posted 九转功成

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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

设计模式中的经典笔录

以上是关于Javascript继承5:如虎添翼----寄生式继承的主要内容,如果未能解决你的问题,请参考以下文章

JavaScript ----------------- 寄生式继承

JavaScript继承基础讲解,原型链借用构造函数混合模式原型式继承寄生式继承寄生组合式继承

JavaScript之原型式继承&寄生式继承和寄生组合式继承以及优缺点

Javascript继承6:终极继承者----寄生组合式继承

javaScript设计模式之面向对象编程(object-oriented programming,OOP)--寄生组合式继承

JavaScript之面向对象学九(原型式继承和寄生式继承)