为什么在 document.ready 中无法声明 javascript 函数?



为什么不能在 jQuery$(document).ready(function(){ }体内声明一个纯 JavaScript 函数?

是因为.ready()已经是一个函数了吗?在纯JavaScript中,你可以有内部函数,对吧?

您确实可以在ready回调函数的主体中定义一个函数。所以我假设你只是在访问你在那里定义的函数时遇到问题。例如:

$(document).ready(function()
{  
function test1()
{
console.log("test1 function was called");
}
function test2()
{
console.log("test2 function was called");
}
test1(); // works
});
test2(); // does not work - Can't access the scope where test2 was defined.

function是对象的属性时,它可以称为methodready是一种将函数作为参数的方法,这个函数称为callback function,因为ready会在 html 文档完全加载后"回调"。

test1test2(上图(是函数声明,它们只能在传递给 ready 方法的回调函数中访问:因为我在该范围之外调用test2(),因此它会失败。

在javascript中,"内部函数"(你称之为闭包(被称为闭包。单击该按钮可了解有关词法范围的更多信息。

ready(( 方法用于在加载文档后使函数可用。无论你在 $(document (.ready(( 方法中编写的任何代码,一旦页面 DOM 准备好执行 JavaScript 代码,就会运行。

最新更新