为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

幕布斯7119047 2021-10-14 13:25:36
为什么不能在 jQuery$(document).ready(function(){  }主体中声明纯 JavaScript 函数?是不是因为.ready()已经是一个函数?在纯 JavaScript 中,您可以拥有内部函数,对吗?
查看完整描述

2 回答

?
缥缈止盈

TA贡献2041条经验 获得超4个赞

您确实可以在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 中,“内部函数”(如您所称)被称为闭包。单击以了解有关词法范围的更多信息。


查看完整回答
反对 回复 2021-10-14
?
MMTTMM

TA贡献1869条经验 获得超4个赞

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


查看完整回答
反对 回复 2021-10-14
  • 2 回答
  • 0 关注
  • 139 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信