欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

Javascript继承4:洁净的继承者----原型式继承

程序员文章站 2022-03-18 15:10:40
设计模式中的经典笔录 ......
//原型式继承
function inheritobj(obj){
    //声明一个过渡函数对象
    function f(){}
    //过渡对象的原型继承父对象
    f.prototype = obj;
    //返回过渡对象的一个实例,该实例的原型继承了父对象
    return new f();
}
/*
* 这种方式是对类式继承的一个封装,所以类式继承中存在的缺点这里依然存在
*/

var car = {
    id:1,
    color:['red']
}

var car1 = inheritobj(car);
car1.id = 2;
car1.color.push('blue');

var car2 = inheritobj(car);
car2.id = 3;
car2.color.push('yellow');

console.log(car1.id)       // 2
console.log(car1.color)    // ['red','blue']

console.log(car2.id)       // 3
console.log(car2.color)    // ['red','blue','yellow']

console.log(car.id)       // 1
console.log(car.color)    // ['red','blue','yellow']

 

设计模式中的经典笔录