首页 > 代码库 > javascript --- 多重继承

javascript --- 多重继承

多重继承就是指,一个子对象中有不止一个父对象的继承模式。

想要实现她,还是非常简单的,而我们只需要延续属性拷贝的继承思路依次扩展对象即可,而对参数中所继承的对象没有限制。

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

我们在其中来了个双重循环,内层循环用于属性拷贝,外层循环用来遍历函数中所传递进来的新对象。

现在来测试一下:

var shape = {    name: ‘shape‘,    toString: function(){        return this.name    }};var twoDee = {    name: ‘Dee‘,    dimension: 2 }var triangle = multi(shape, twoDee, {    name: ‘Anna‘,    getArea: function(){        return this.side*this.height / 2;    },    side: 5,    height: 5})

 

来试一下:

triangle.getArea(); // 17.5triangle.dimension; // 2triangle.toString); // Anna

 

要注意的是,mulit()中的循环是按照对象的顺序来进遍历的,也就是说,如果有两个同名的属性或方法,前一个就会被后一个所覆盖。

怎么样,比较简单吧!!!

继续A哥镇楼:

技术分享

 

javascript --- 多重继承