是否可以将变量C定义为2个对象的组合(比方说A和B),以便A和B发生任何事情将来的任何时候都会发生C.这意味着,在对A和B进行任何更改之前声明 C 。例如:
var A = {};
var B = {};
var C = combine(A, B);
A.a=1;
B.b=2;
console.log(C);
// { a:1, b:2 }
答案 0 :(得分:2)
C必须是一个函数:
function extend(obj) {
if (typeof obj !== 'object') return obj;
Array.prototype.slice.call(arguments, 1).forEach(function (source) {
for (var prop in source) {
obj[prop] = source[prop];
}
});
return obj;
};
var A = {};
var B = {};
var C = function () {
var _c = {};
return extend(_c, A, B);
};
然后按C调用:
A.a=1;
B.b=2;
console.log(C());
// { a:1, b:2 }