【问题标题】:javascript shorthand if the else callbackjavascript 速记 if else 回调
【发布时间】:2011-12-26 13:49:13
【问题描述】:

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

}

但它不起作用。

我怎么可能?

谢谢

【问题讨论】:

    标签: javascript shorthand shorthand-if


    【解决方案1】:

    您只是在声明函数。你必须执行它。在定义旁边添加 () ..

    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
    }
    

    【讨论】:

    • 但这并不等同于原始函数:它将 param 设置为 false,而不是从 somefunction() 返回 false。
    • @nx6 是的,你是对的,我很高兴你指出了这一点。我是新手,没有考虑“退货”的含义。尽管如此,amit_g 的解决方案仍然符合我的意图。我有兴趣触发警告而不是设置变量,所以,我编辑了问题,简单地返回;就像退出功能一样谢谢你的评论启发了我......我现在感觉像是一场比赛
    猜你喜欢
    • 1970-01-01
    • 2014-08-08
    • 2013-07-18
    • 2016-10-06
    • 2011-07-17
    • 2013-08-30
    • 2016-12-26
    • 2016-05-15
    • 2014-09-07
    相关资源
    最近更新 更多