javascript中的自动执行匿名函数有什么问题
我尝试编写一个javascript自动执行匿名函数 但是Firebug告诉我:{}不是一个函数 然后我尝试将应用程序移入,如: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
(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 || {};