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

2021-05-22 13:30

阅读:426

标签:class   obj   red   --   UNC   console   函数   div   turn   

//原型式继承
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‘]

 

设计模式中的经典笔录

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

标签:class   obj   red   --   UNC   console   函数   div   turn   

原文地址:https://www.cnblogs.com/-walker/p/9737476.html


评论


亲,登录后才可以留言!