gpt4 book ai didi

javascript - 当使用 $(document).ready 时,为什么它必须在匿名函数中?

转载 作者:行者123 更新时间:2023-11-28 11:26:08 25 4
gpt4 key购买 nike

我一直使用文档就绪,但我正在观看一些教程视频来真正了解发生了什么,而不是仅仅通过输入这么多内容来了解​​。

出于习惯,我总是将其放入匿名函数中,因为它总是这样做,但现在我看看它是否不在匿名函数中(例如,alert();),它不会在 DOM 加载时执行,而是在 javascript 加载时立即执行。它必须位于匿名函数中,才能按照预期发生(当整个页面加载时),并且事件监听器触发其“准备就绪”。

这是为什么?

另外我经常看到类似function(i){}(i)这样的东西,这是什么意思?

最佳答案

在这个答案中,我将使用 $(document).ready(...) 的简写,即 $(...),前提是传递了一个函数

该函数不必是匿名的;例如,您可以这样写:

function doStuff() {
}

$(doStuff);

我认为你的意思是如果你尝试这样做:

$(alert('Yo!'));

它确实会立即发出警报。这是因为需要一个函数,而 alert() 是一个函数调用。另一方面,这会起作用(尽管很奇怪):

$(alert);

对于第二个问题,function(i){}(i) 的作用是声明一个带有一个参数的函数对象,然后立即使用提供的参数运行它。这是一种使用对象的有用方法,不需要它是全局的,也不需要它具有特定的名称。例如,这个:

(function($) {
// Do stuff with $
})(jQuery);

允许您将 jQuery 别名为 $

关于javascript - 当使用 $(document).ready 时,为什么它必须在匿名函数中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10669338/

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