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