gpt4 book ai didi

javascript - 立即调用的函数表达式抛出 "object is not a function"

转载 作者:搜寻专家 更新时间:2023-11-01 04:57:15 26 4
gpt4 key购买 nike

我在 Javascript 文件中定义各种模块:

var module = {/* ... */}

(function(){
console.log('Invoked');
})()

但是 IIFE 抛出一个错误:

> 类型错误:对象不是函数

我尝试只复制并粘贴 IIFE 代码,没有问题。

最佳答案

模块定义需要在声明末尾加一个分号:

var module = {/* ... */}; // <======= Semicolon!

(function(){
console.log('Invoked');
})()

如果没有它,Javascript 将尝试调用该对象:

var module = {/* ... */}(function(){console.log('Invoked');})()

或缩短:

var module = {/* ... */}()

当你尝试编写两个并排的 IIFE 时,你会遇到同样的问题:

(function(){})()
(function(){})()

这不起作用,因为单个函数声明返回 undefined:

TypeError: undefined is not a function

关于javascript - 立即调用的函数表达式抛出 "object is not a function",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21031820/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com