讲多继承之前,咱们先看看当前流行的一个用来继承单对象属性的extend方法,
// 单继承,属性复制
var extend = function(target, source) {
// 遍历源对象的属性
for (var p in source) {
// 将源对象属性复制到目标对象中
target[p] = source[p]
}
// 返回目标对象
return target;
}
稍微对以上代码简单修改,传入多个对象参数即可实现对多个对象属性的继承,即多继承。
// 多继承,属性复制
var extends = function() {
var i = 1, // 第二个参数起是被继承的对象
target = arguments[0], // 第一个对象是目标对象
len = arguments.length, // 传入的参数的长度
arg; // 缓存参数
for(; i < len; i++) {
// 缓存当前对象
arg = arguments[i];
for (var p in arg) {
target[p] = arg[p]
}
}
// 返回目标对象
return target;
}