JS多重継承

2205 ワード

複数の相続とは、1つのサブオブジェクトのうち複数の親オブジェクトの属性を指し、同名の属性があれば、後ろの方が前の方をカバーします.
考え方
1、multi()関数を作成し、任意の数の入力オブジェクト(tip:argmentsは、送信された任意のパラメータを受け入れることができます)を受け入れることができます.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