3
我只是在使用jQuery扩展JavaScript对象时偶然发现了一个小问题。执行
var item = $.extend(options.itemDefaults, item);
options.itemDefaults
当扩展与已经在item
并且将结果传递到item
属性。到现在为止还挺好。
但在执行这条线的下一个时间,options.itemDefaults
拥有所有的属性值是item
不得不代替了原来的默认值。我的默认值已丢失!
我意识到我可以简单地将默认对象存储在一个临时变量中,而是扩展临时变量,但它看起来有点冗长。有没有一种方法可以做我以后的事情(在没有值的情况下,使用提供的默认值覆盖默认值,而不会改变默认的对象)没有绕行?
更新:看起来这不像我希望的那样容易。当我在每次迭代做
var defaults = options.itemDefaults;
var $item = $.extend(defaults, { attributeModel: options.attributeModel }, item);
defaults = undefined
,我仍然从item
上options.itemDefaults
添加属性!我如何解决这个问题?
太棒了!这正是我以后的事。谢谢! =) – 2010-07-26 08:13:15
不客气,很高兴它帮助:) – Anurag 2010-07-26 08:36:57