重新应用默认值时保持原始对象引用

时间:2014-08-08 20:56:36

标签: javascript object reference

我正在替换这一行,它创建了一个默认扩展的新对象和新属性:

var myObj = _.extend({}, objDefaults, myObj);

使用这些行,它们执行相同的操作但保持原始对象引用不变:

// Save the current properties
curProps = $.extend({}, myObj);
// Clear the current reference
for (prop in myObj) { if (myObj.hasOwnProperty(prop)) { delete myObj[prop]; } }
// Extend the original reference with defaults and the props
return $.extend(myObj, objDefaults, curProps)

这是实现这个目标的好方法吗?似乎它比必要的时间长。

编辑:如果我不清楚我的意思,这里是你可以称之为extendInPlace的某种方法的测试:

var obj2 = myObj;
extendInPlace(myObj);
obj2 === myObj; // still the same reference

0 个答案:

没有答案