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

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

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


幕布斯7119047
浏览 141回答 2
2回答

缥缈止盈

您确实可以在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.当 afunction是对象的属性时,它可以被称为 a method。ready是一种将函数作为参数的方法,该函数称为 a callback function,因为ready在 html 文档完全加载后将“回调”。test1和test2(上面)是函数声明,它们只能在传递给 ready 方法的回调函数中访问:因为我test2()在该范围之外调用,所以它失败了。在 javascript 中,“内部函数”(如您所称)被称为闭包。单击以了解有关词法范围的更多信息。

MMTTMM

ready() 方法用于在加载文档后使函数可用。一旦页面 DOM 准备好执行 JavaScript 代码,您在 $(document ).ready() 方法中编写的任何代码都会运行。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript