gpt4 book ai didi

javascript - Jquery.Document 中有函数和没有函数有什么区别

转载 作者:行者123 更新时间:2023-11-30 23:51:17 24 4
gpt4 key购买 nike

我只是想知道这两个有什么区别

File1.js
$(function()
{
function MyFunction()
{
// some code here
}
});

File2.js

$(function()
{
// call it.
MyFunction();
});
<小时/>
File1.js
function MyFunction()
{
// some code here
}


File2.js

$(function()
{
// call it.
MyFunction();
});

那么有什么区别呢?当我采用第一种方法并尝试从 File2.js 调用 MyFunction() 时,它从未起作用。我将我的函数从 File1.Js 中的 Jquery.Document 中移出,并且它起作用了。

我在 File1 中还有一些其他函数,即使它们已在文档中准备就绪,File1 中的任何内容似乎都可以调用它没有问题。

似乎跨脚本文件在以这种方式设置时调用函数时出现问题。

最佳答案

在 ECMAScript 中,只有函数(无 block 作用域)作用域,并且在函数内使用 'var' 或 'function' 关键字定义的任何内容都无法在作用域之外访问(除非您将其分配给外部作用域(如 window )中的某些内容。您在另一个函数中定义了一个函数,根据函数作用域规则,您无法访问它。

但是,您可以访问外部作用域中定义的变量/函数,这就是您在第二个示例中所做的。

因此,本质上,当您使用 $(function(){})'ing 时,您正在做的是创建一个沙箱,这是一个受限制的区域,如果您定义任何变量,则无法访问它们,除非您专门将它们指定为类似于 window 对象,它是全局命名空间。

关于javascript - Jquery.Document 中有函数和没有函数有什么区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1469568/

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