[英]Immediately invoked function expression throws “object is not a function”
我在Javascript
文件中定义了各种模块:
var module = {/* ... */}
(function(){
console.log('Invoked');
})()
但是, IIFE
引发错误:
> TypeError:对象不是函数
我尝试仅复制并粘贴IIFE
代码,没有问题。
模块定义在声明的末尾需要一个分号:
var module = {/* ... */}; // <======= Semicolon!
(function(){
console.log('Invoked');
})()
没有它,Javascript将尝试调用该对象:
var module = {/* ... */}(function(){console.log('Invoked');})()
或缩短:
var module = {/* ... */}()
尝试彼此相邻编写两个IIFE时,会遇到相同的问题:
(function(){})()
(function(){})()
这不起作用,因为单个函数声明返回undefined
:
TypeError:未定义不是函数
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.