2010-06-19 51 views
1

在可選設置參數中讀取可選屬性的最有效方式是什麼?我使用的是這樣的:從javascript中的可選設置讀取可選屬性

f = func(var1, optionalsettings) { 
    var2 = (optionalsettings === undefined ? 0 
     : (optionalsettings['var2'] == null ? 0 : optionalsettings['var2'])); 
}; 

但我的感覺,可以更有效地完成,無論是在JavaScript或jQuery的。

回答

3

你可以這樣做:

var var2 = (optionalsettings && optionalsettings['var2']) || 0; 

首先你檢查是optionalsettings存在。如果是,請嘗試返回optionalsettings['var2']。如果失敗,則回到默認值。

+0

需要注意的是它的工作沒有括號,如''&&優先於''||,但它是稍微更具可讀性的方式。 – Kobi 2010-06-19 13:35:16

0

也可以jQuery的擴展:

function myTest(arg1, arg2, optionalsettings) { 
    var settings = $.extend({ 
    opt1 : val1 
    , opt2 : val2}, optionalsettings || {}) 
...