<分区>
在使用立即调用的函数表达式时,我遇到了一些我没想到会发生的奇怪行为。当末尾有一个 IIFE 时,下面的代码运行函数 hello
。为什么会这样?
var hello = function () {
console.log("hello");
}
(function () {
})();
标签 javascript iife
<分区>
在使用立即调用的函数表达式时,我遇到了一些我没想到会发生的奇怪行为。当末尾有一个 IIFE 时,下面的代码运行函数 hello
。为什么会这样?
var hello = function () {
console.log("hello");
}
(function () {
})();
最佳答案
运行这个,不会的
var hello = function () {
console.log("hello");
};
(function () {
})();
这是因为 JavaScript 解释器将其理解为连续代码,除非您将 ;
标记为语句的结尾。
你的代码
var hello = function () {
console.log("hello");
}
(function () {
})();
居然变成这样
var hello = function () {
console.log("hello");
}(function(){})();
解释器通过将 function () {}
作为参数立即运行 hello
函数,并为下一个 ()
抛出错误.
关于javascript - 立即调用的函数表达式运行最后定义的函数。为什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33847464/
相关文章:
javascript - 如何使用createEvent和dispatchEvent设置焦点并设置输入文本中的文本?
javascript - Sublime Text 2 中的 JsLint
javascript - 如何使用 forEach 循环在 IIFE 中调用数组?
javascript - 为 javascript 库创建命名空间
javascript - Discord.js 获取消息的 id 并将其删除
javascript - 如何使用浅渲染而不是使用 NO_ERRORS_SCHEMA 编写 Angular Jasmine 简单的 'should create' 测试用例