我有一个对象:
var o = { dates: { dateFrom: "01DEC2012", dateTo: "02DEC2012" }, selection: "A" };
和一个函数:
var getSelection = function () {
return { selection: "A,B" };
};
调用:
o.selection = getSelection();
让我明白:
{ dates: { dateFrom: "01DEC2012", dateTo: "02DEC2012" }, selection: { selection: "A,B"} };
当我需要时:
{ dates: { dateFrom: "01DEC2012", dateTo: "02DEC2012" }, selection: "A,B" };
我知道我可以将 getSelection()
结果提取到变量中,然后手动更新 o
,但我的对象要复杂得多,我需要一气呵成。我该怎么做?
最佳答案
您实际上是将 getSelection()
合并到 o
中,因此您可以执行以下操作:
var result = getSelection();
for (var key in result) {
o[key] = result[key];
}
如果您使用 jQuery,则可以使用 jQuery.extend()
:
var result = jQuery.extend(getSelection(), result);
关于javascript - 设置对象属性而不创建额外的嵌套级别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12991711/