2017-11-18 122 views
0

当页面准备就绪时,我用$(function)封装了两个用于运行代码的文件。但由于某些原因从第二个文件中的第一个文件调用函数给我错误“ReferenceError:test is not defined”。未定义来自其他文件的功能

第一个文件:

$(function() { 

    function test() { 
     alert(1); 
    } 

}); 

第二个文件:

$(function() { 

    test(); 

}); 

回答

1

这是因为JavaScript的范围内,您可以通过使用Window全局对象避免这种情况。

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

第一个文件:

$(function() { 
 

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

 
});

第二个文件:

$(function() { 
 

 
    test(); 
 

 
});

+0

谢谢你的解决方案。但是你可以解释为什么JS在同一个范围内找不到函数吗? – DIAMONDMAN

+0

@DIAMONDMAN你的函数'test'不在同一个范围内,每个函数都是JS有它自己的范围。 –