Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/466.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
javascript中的自动执行匿名函数有什么问题_Javascript_Function_Anonymous - Fatal编程技术网

javascript中的自动执行匿名函数有什么问题

javascript中的自动执行匿名函数有什么问题,javascript,function,anonymous,Javascript,Function,Anonymous,我尝试编写一个javascript自动执行匿名函数 但是Firebug告诉我:{}不是一个函数 然后我尝试将应用程序移入,如: (function (global) { global.test = function () { console.log('test'); } }(App)); 然后萤火虫告诉我: App is not defined 那么我的代码有什么问题吗?我怎样才能用正确的方式来做呢 以下是您的建议尝试一下: window.App = wind

我尝试编写一个javascript自动执行匿名函数

但是Firebug告诉我:{}不是一个函数

然后我尝试将应用程序移入,如:

(function (global) {
    global.test = function () {
        console.log('test');
    }
}(App));
然后萤火虫告诉我:

App is not defined
那么我的代码有什么问题吗?我怎样才能用正确的方式来做呢

以下是您的建议尝试一下:

window.App = window.App || {};

您缺少一个分号

在第一行添加分号

window.App = window.App || {};

JS认为第3行的括号是第1行新空对象的一部分。

JavaScript会自动在每行末尾插入分号,如果这不会导致语法错误的话。这两行应该是相等的。@cdhowie并不总是这样,这是一个完美的例子和论点。@cdhowie不,这里需要一个分号,因为下一个标记是a。而现在你有了它,a。荒谬!我想OP故意构造了这个问题来证明一个观点。这个代码对我来说有点奇怪,所以我不会提供答案,但是第一行的花括号之间不应该有一些代码吗?@JezenThomas不,{}只是一种创建空对象的方法。您可以看到它以全局的形式传递到函数中,并在其中定义了一个方法测试。这是一个很好的例子,说明了在野外插入分号的问题。孩子们,永远不要忘记分号!非常有趣。伟大的问题;不知道为什么会被否决+1.
window.App = window.App || {};