2011-11-10 15 views
0

長手,如果在JavaScript看起來:JavaScript的簡寫,如果別的回調

function somefunction(param){ 

    if(typeof(param) != 'undefined'){ 
      var somevar = param; 
     } else { 

      alert('ERROR: missing parameter in somefunction. Check your form'); 
      return; 

     } 

} 

和我的手短版本是:

function somefunction(param){ 

    param = typeof(param) != 'undefined' ? param : function(){alert('ERROR: missing parameter in somefunction. Check your form'); return;} 

} 

,但它不能正常工作。

我怎麼能?

謝謝

+0

Eww你爲什麼這樣做? – mattacular

回答

3

您只聲明該函數。你必須執行它。 Add()方法旁邊的定義..

function somefunction(param){ 
    param = typeof(param) != 'undefined' ? 
       param : 
       function() { 
        alert('ERROR: missing parameter in somefunction. Check your form'); 
        return false; 
       }(); 
} 

編輯:以上是沒有功能上等同於原有的功能本身不返回任何東西,並沒有結束函數執行。

function somefunction(param) { 
    if (typeof(param) == 'undefined') { 
     alert('ERROR: missing parameter in somefunction. Check your form'); 
     return false; 
    } 

    // Use param 
} 
+0

你知道了!謝謝,這個作品 – IberoMedia

+1

但這不等同於原始函數:它將param設置爲false,而不是從somefunction()返回false。 – nnnnnn

+0

@ nx6是的,你說得對,我很高興你指出了這一點。我是newby,並沒有說明「返回某些東西」的含義。儘管如此,amit_g的解決方案並不符合我的意圖。我有興趣觸發警告而不是設置變量,所以,我編輯了問題,只是簡單地返回;因爲在功能感謝THANKS你的評論啓發我...我現在感覺像一場比賽 – IberoMedia