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

関数のコメント行 ( //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 に答える
1

オブジェクトが単純な場合は、 foreach を追加するだけでよいはずです (そうでない場合は、 hasOwnProperty() チェックを追加することをお勧めします)。

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

それが役立つことを願っています!

于 2013-08-14T12:08:50.093 に答える