Javascript:将2个对象合并为一个

时间:2014-08-16 22:05:46

标签: javascript pointers object data-structures reference

是否可以将变量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 }

1 个答案:

答案 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 }