所谓的多重继承,是指一个子对象中可以有多个父对象的属性,若有同名属性,则后面的会覆盖前面的
思路
1、创建一个multi()函数,它可以接受任意数量的输入对象(tip:arguments可以接受传进来的任意参数)。 2、在函数内实现一个双重循环,内循环用于遍历并拷贝对象属性,外循环用于遍历传进来的所有对象
function multi(){
var n={},stuff,j=
0,len=
arguments.length;
for(j=
0;j<len;j++){
stuff=
arguments[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
转载请注明原文地址: https://ju.6miu.com/read-660343.html