在JavaScript中扩展具有多个属性的对象

时间:2011-04-07 17:33:07

标签: javascript object

我有一个具有多个属性和函数的全局JavaScript对象,我用这种方式创建它:

myObject = {};

我认为我可以通过创建类似的东西轻松扩展这个对象

myObject = { propA1 : null, ....., propAN : null};

而不是

myObject.propA1 = null;
myObject......;
myObject.propAN = null;

我的方法出了什么问题?

3 个答案:

答案 0 :(得分:14)

当您撰写myObject = { ... }时,您正在创建一个全新的对象,并将myObject设置为指向它。
<{1}}的先前值被丢弃。

相反,您可以使用jQuery:

myObject

答案 1 :(得分:13)

如果没有jQuery,您可以使用以下内容创建一个对象数组:

[{'key': 'atuhoetu', 'value': 'uehtnehatn'},{...}]

如果您不关心兼容性,最近的浏览器应该支持这一点:

var newObj = {prop1: 'val', prop2: 'val'};
Object.keys(newObj).forEach(function (item) {
    myObject[item] = newObj[item];
});

这将迭代newObject中的所有项目并将它们添加到myObj。

答案 2 :(得分:1)

或者,更清洁的东西:

function extend(target, source){
    for(prop in source){
        target[prop] = source[prop];
    }
}

如果您按以下方式使用它:

var objA = {a: "a"};
var objB = {b: "b", c: "c"};
extend(objA, objB);

结果将是:

objA = {a: "a", b: "b", c: "c"};