JS多重继承

所谓的多重继承,是指一个子对象中可以有多个父对象的属性,若有同名属性,则后面的会覆盖前面的

思路

1、创建一个multi()函数,它可以接受任意数量的输入对象(tip:arguments可以接受传进来的任意参数)。
2、在函数内实现一个双重循环,内循环用于遍历并拷贝对象属性,外循环用于遍历传进来的所有对象

function multi(){
    var n={},stuff,j=0,len=arguments.length;
    for(j=0;jarguments[j];
        for(var i in stuff){
            if(stuff.hasOwnProperty(i))
                n[i]=stuff[i];
        }
    }
    return n;
}

测试

var shape={
    name: 'shape',
    toString: function(){
        return this.name;
    }
}

var twoD={
    name: '2D Shape',
    dimensions: 2 
}

var triangle=multi(shape,twoD,{
    name: 'Triangle',
    side: 5,
    height: 5,
    getArea: function(){
        return this.side*this.height/2;
    }
});
>triangle.toString()
"Triangle"
>triangle.getArea()
12.5

你可能感兴趣的:(javascript)