2

我有以下代码:

var self = this;
var test = function (name, properties) {
    self[name] = {
        prop1: "test1",
        prop2: "test2"
    };

    // some code here assigning properties object to self[name] object
};

test("myObj", { "prop3": "test3", "prop4": "test4" });

我需要完成的是将properties对象的内容分配给,myObj以便最终:

self["myObj"] = {
                prop1: "test1",
                prop2: "test2",
                prop3: "test3",
                prop4: "test3"

            };
4

3 回答 3

1

jQuery 有一个扩展对象的方法叫做jQuery.extend

您可以在此处查看 jQuery 是如何实现这一点的。

你会像这样使用它:

$.extend(self, { "prop3": "test3", "prop4": "test4" });
于 2013-08-14T12:05:49.220 回答
1

如果对象很简单,您应该能够只添加一个 foreach(如果不是,可能要添加 hasOwnProperty() 检查)

foreach(var propertyKey in properties) {
    self[name][propertyKey] = properties[propertyKey];        
}

希望有帮助!

于 2013-08-14T12:08:50.093 回答
1

//some code here assigning ...将函数 ( )中的注释行替换为

for(var i in properties) self[name][i] = properties[i]

演示。

或更好

for(var i in properties) {
    if(properties.hasOwnProperty(i)) self[name][i] = properties[i];
}

演示>

于 2013-08-14T12:11:40.220 回答