未捕获的类型错误:(中间值)(...)不是函数

2023-12-10

当我在闭包中将 js 逻辑编写为单个 js 文件时,一切正常,如下所示:

(function(win){
   //main logic here
   win.expose1 = ....
   win.expose2 = ....
})(window)

但是当我尝试在同一个 js 文件中的闭包之前插入日志记录替代函数时,

 window.Glog = function(msg){
     console.log(msg)
 }
 // this was added before the main closure.

 (function(win){
   //the former closure that contains the main javascript logic;
 })(window)

它抱怨有一个类型错误:

Uncaught TypeError: (intermediate value)(...) is not a function

我做错了什么?


该错误是由于第三行缺少分号而导致的:

window.Glog = function(msg) {
  console.log(msg);
}; // <--- Add this semicolon

(function(win) {
  // ...
})(window);

ECMAScript 规范有自动分号插入的具体规则,但是在这种情况下,不会自动插入分号,因为下一行开始的括号表达式可以解释为函数调用的参数列表。

这意味着如果没有分号,匿名者window.Glog函数被调用为msg参数,后面跟着(window)随后尝试调用返回的任何内容。

这就是代码的解释方式:

window.Glog = function(msg) {
  console.log(msg);
}(function(win) {
  // ...
})(window);
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

未捕获的类型错误:(中间值)(...)不是函数 的相关文章

随机推荐

  • 用于设置系统蜂鸣声的批处理/VB 脚本

    我想知道 使用批处理 vbs 或任何其他内置的 Windows 语言 我可以让系统发出蜂鸣声 就像启动时按下某个键时发出的蜂鸣声 吗 我不确定这是否可能 但任何帮助都会很棒 这非常容易使用ctrl G 出现为 G在命令中 只需输入 Echo
  • 将 ImageView 与 EditText 水平对齐

    我正在努力寻找一种对齐的方法EditText and an ImageView properly在安卓上 我不断得到这个结果 XML 部分非常简单
  • 图像未在循环 Vue.js 中显示[重复]

    这个问题在这里已经有答案了 我正在尝试使用循环显示 9 个不同的图像v for 但是 他们没有表现出来 如果我在没有任何循环的情况下显示它 它就可以工作 我正在提取正确的资源 但它仍然不会显示 这是我的代码 img class list c
  • 如何在 LazyVGrid 中以编程方式触发 NavigationLink

    我有一个LazyVGrid里面一个NavigationView NavigationView ScrollView LazyVGrid columns columns ForEach items item in NavigationLink
  • 倾斜表面辐射的 solaR 时间戳

    我正在尝试使用 R 包solaR给定水平面上测量的辐照度 计算倾斜面上的辐照度 我可以让代码工作 但最终输出时间戳没有意义 可以找到此代码的数据here 这是德克萨斯州奥斯汀一天的测量辐照度 全局水平 ghz 直接法线 dir 漫射水平 d
  • 如何通过类名或id获取元素

    我正在尝试通过 angularjs 查找 html 中的元素 这是 HTML
  • Xsl:如何根据总和进行分组和排序?

    我有下面的xml
  • 引用/对象的静态/动态转换

    不久前我和一群选角操作员一起玩 显然我当时并没有真正理解 我现在正在查看我的代码 我看到了这个 Base Derived p derived m state static cast p derived m state 我想我现在对指针和引用
  • 如何在 PHP 中获取真实的主机名或服务器名

    如何在 PHP 中不使用 SERVER SERVER NAME 来获取真实主机名 还有其他更可靠的方式获取吗 我创建了一个从域路径获取主机名的函数 我想避免使用 SERVER SERVER NAME 变量 因为它可以通过在 HTTP 请求中
  • 无法从模板获取内容

    在 Javascript 中 我试图动态创建 HTML
  • 使用 python-docx 检索具有文档结构的文档内容

    我必须从中检索表格和上一个 下一个段落docx文件 但无法想象如何获取它python docx 我可以通过以下方式获取段落列表document paragraphs 我可以通过以下方式获取表格列表document tables 如何获得这样
  • 具有 Dotrine 的累积 DQL

    我很难制定出适当的 DQL 来生成累积和 我可以用普通的 SQL 来完成它 但是当涉及到 DQL 时我无法掌握它 下面是它在 SQL 中的样子 SELECT s name p date short p nettobuy select sum
  • 在 Raspberry Pi 上插入 USB 后使用 udev 运行脚本

    我试图在插入任何 USB 驱动器后从 udev 规则运行脚本 当我手动运行脚本时 USB正常挂载后 就可以正常运行了 该脚本调用Python程序来运行 Python程序使用USB驱动器上的文件 那里没有任何问题 如果我编写脚本只是将日期记录
  • xUnit 异步测试在 VS2015 中显示为“外部”

    我的所有异步 xUnit 测试在 VS2015 的测试资源管理器中显示为外部时遇到问题 在测试资源管理器中调用 Run All 时 它们仍然会运行 但由于它们被认为是外部的 所以几乎所有 VS2015 集成都不起作用 例如导航 在测试资源管
  • 哪个正则表达式需要回溯?

    实现正则表达式匹配有三种不同的解决方案 DFA NFA 和回溯 我正在寻找例子 一个正则表达式 可以用 DFA 来解决 以及为什么 DFA 就足够了 正则表达式 它需要 NFA 以及需要 NFA 的原因 正则表达式 需要回溯以及需要回溯的原
  • 使用 MS SQL 获取遵守特定条件的所有可能组合

    我需要构建一个 SQL 查询 但我不知道如何做 如果有人提供帮助 我将非常感激 我有下表 GroupedBYField ConditionField ToBeSummeField 1 1 1 1 1 2 1 1 3 2 2 100 2
  • LWUIT 文本区域问题

    有什么办法可以写在textArea不进入 LCDUI 窗口 我想编辑我的textArea在我的 LWUIT 应用程序中 但每次我尝试执行此操作时 应用程序都会将我发送到 LCDUI 窗口 要禁用 LWUIT 编辑控件触发器 您可以使用以下代
  • 为什么我的数据绑定会写出 Length 属性?

    所以我设置了一个视图模型到它绑定的地方ObservableCollection
  • 如何在 Genymotion VM 中安装 Google Play 服务(不支持拖放)?

    Vm如何在不支持拖放的 Genymotion 模拟器中安装 Google Play 服务 我无法按照 Stack Overflow 帖子中所述安装它如何在 Genymotion 虚拟设备上安装 Google 框架 Play 帐户等 由于缺乏
  • 未捕获的类型错误:(中间值)(...)不是函数

    当我在闭包中将 js 逻辑编写为单个 js 文件时 一切正常 如下所示 function win main logic here win expose1 win expose2 window 但是当我尝试在同一个 js 文件中的闭包之前插入