2011-11-01 5 views

答えて

3
var deviceTableGridId = tableGridId || gridId, 
     getUrl = url || restUrl; 
1
initGrid: function(tableGridId, url) { 
    tableGrid = tableGrid || gridId; 
    url || (url = restUrl); 
    ... 
} 

パターンは、それらがfalseを上書きするので、truthy値をチェック、

x = x || someValue;

x || (x = someValue);

よう注の両方をチェックしています"",0など

あなたは何か、より安全な試み

x === undefined && (x = someValue);

0

どちらも他のソリューションを使用する場合はfalsy値が許容入力から除外することができたときに最適です。しかし、それができない場合は、単純なヘルパー関数が問題を解決します。

function getOrDefault(val, other) { 
    if (typeof val == "undefined") { 
     return other; 
    } 

    return val; 
} 

var someVal = getOrDefault(someVar, 4); 
var getUrl = getOrDefault(url, restUrl); 

もう1つのアプローチがあります。

var someVal = someVar; 

if (typeof someVal == "undefined") { 
    someVal = 4; 
} 

var getUrl = url; 

if (typeof getUrl == "undefined") { 
    someVal = restUrl; 
} 

うまくいけば、最初の解決策をお勧めします。

関連する問題