当前位置: 移动技术网 > IT编程>开发语言>JavaScript > Javascript继承5:如虎添翼----寄生式继承

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

2018年10月03日  | 移动技术网IT编程  | 我要评论
设计模式中的经典笔录 ...
/*
* 寄生式继承
* 其实就是对原型继承的第二次封装,在封装过程中对继承的对象进行了扩展。
* 也存在原型继承的缺点!!
* 这种思想的作用也是为了寄生组合式继承模式的实现。
*/
//声明基对象
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

设计模式中的经典笔录

如您对本文有疑问或者有任何想说的,请点击进行留言回复,万千网友为您解惑!

相关文章:

验证码:
移动技术网