1. 程式人生 > >Javascript繼承4:潔凈的繼承者----原型式繼承

Javascript繼承4:潔凈的繼承者----原型式繼承

pan 函數 原型繼承 itob () pro push prototype script

//原型式繼承
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:潔凈的繼承者----原型式繼承