返回语句javascript

return statement javascript

本文关键字:javascript 语句 返回      更新时间:2023-09-26

为什么当我返回一个函数时,我不能在它下面有更多的代码

示例

<script language="javascript">
    return compute();
    alert(1);
</script>

提示无效

警告不起作用

听起来不错。我将这段代码设想为:

    (function() {
      return compute();
      alert(1);
    })();

return语句的功能是双重的。首先,它返回一个值(在本例中是一个指向函数的指针)。第二,它是管理控制流,也就是说,它告诉正在执行该代码的浏览器离开该函数,并将执行控制返回到调用示例脚本的代码段。

换句话说,试图返回一个值,同时又希望继续执行,这会使浏览器对下一步做什么产生歧义。

如果您要翻转这两行(先发出警告,然后返回一个值),这将导致这两行都被执行。

本教程还可以提供进一步的见解。

同样,正如Rob W和Kris Krause所指出的,您只能从函数中获取return,但是您所展示的代码并没有封装在函数中。

在函数/闭包内部,可以在返回语句下面放置代码。具体来说,就是将被提升的函数声明,这样它们就可以被返回值上面的代码使用。我一直在使用这种"模式",下面是我当前代码库中的一个小示例:

function msgHandlers() {
    var scope
        ,msgs;
    return {
        SET_CONTEXT: function(context) {
            scope = context.scope;
            msgs = context.messages;
        }
        ,SUBSCRIBE_ALL: function() {
            me.subscribe(scope, msgs.ITEM_PINNED, itemPinnedHandler);
        }
    }
    function itemPinnedHandler(record) {
        loadInventoryRecord(record);    
    }
}