【问题标题】:Function from other file is not defined未定义来自其他文件的函数
【发布时间】:2017-11-18 05:37:53
【问题描述】:

当页面准备好时,我用 $(function) 包装这两个文件以运行代码。但由于某些原因,从第二个文件中的第一个文件调用函数会给我错误“ReferenceError: test is not defined”。

第一个文件:

$(function() {

    function test() {
        alert(1);
    }

});

第二个文件:

$(function() {

    test();

});

【问题讨论】:

    标签: javascript jquery function scope


    【解决方案1】:

    这是因为 JavaScript 作用域,你可以通过使用 Window 全局对象来避免这种情况。

    将变量添加到Window 对象将使它们成为全局变量,因此您可以从任何地方访问它们。

    第一个文件:

    $(function() {
    
        window.test = function () {
            alert(1);
        }
    
    });

    第二个文件:

    $(function() {
    
        test();
    
    });

    【讨论】:

    • 感谢您的解决方案。但是你能解释一下为什么 JS 在同一范围内找不到函数吗?
    • @DIAMONDMAN 你的函数test不在同一个作用域,每个函数都是JS有它自己的作用域。
    • 你拯救了我的一天!
    猜你喜欢
    • 1970-01-01
    • 2023-03-06
    • 2010-10-25
    • 1970-01-01
    • 2021-09-21
    • 1970-01-01
    • 2021-08-13
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多