javascript简写如果else回调

时间:2011-11-10 21:51:22

标签: javascript shorthand shorthand-if

如果在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;}

}

但它不起作用。

我怎么能?

谢谢

1 个答案:

答案 0 :(得分:3)

您只是声明了这个功能。你必须执行它。在定义旁边添加()..

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
}