创建可在任何地方使用的 JS 函数?范围和功能“未定义”的问题

Creating JS functions to use anywhere? Problems with scope and functions being "undefined"

本文关键字:未定义 功能 问题 范围 函数 任何地 方使用 创建 JS      更新时间:2023-09-26

所以我对JS还很陌生,我最大的挫折之一就是SCOPE。我读过很多指南,我知道什么时候可以使用某些变量,什么时候不能使用某些变量,但我永远不明白我的错误在哪里。我想创建一堆可以在文档中的任何位置使用的 JS 函数,但是,我经常收到说函数未定义的错误......

我的情况:
我在<head>中添加了一个外部脚本文件。在脚本中.js我有一个名为:launch_ajax的函数。

launch_ajax = function(){
    console.log("fire");
};
window.launch_ajax() = launch_ajax();

然后在我身体的底部,我有launch_ajax();,但给了我:

未捕获的引用错误: 未定义launch_ajax

请不要骂我愚蠢... =(

在你的代码中:

launch_ajax = function(){
    console.log("fire");
};

这将创建一个名为 launch_ajax 的全局变量,并为其分配右侧的函数。

window.launch_ajax() = launch_ajax();

这是一个函数调用,紧跟一个赋值,并将"fire"写入控制台,然后抛出有关无效赋值的错误。脚本执行应就此停止。

如果你实际拥有的是:

window.launch_ajax = launch_ajax();

然后将调用launch_ajax的结果分配给window.launch_ajax。由于该函数没有 return 语句,因此它返回 undefined,因此 window.launch_ajax 的值现在是未定义的。如果稍后尝试调用它,则会收到一条错误消息,指出launch_ajax不是函数。