首页 > 代码库 > 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 --- 多重继承
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。