gpt4 book ai didi

javascript - 为什么这两个参数在 jQuery 源码中是为什么呢?

转载 作者:数据小太阳 更新时间:2023-10-29 05:06:28 26 4
gpt4 key购买 nike

jQuery 源代码被包裹在一个闭包中,如下所示:

(function(window, undefined) {
//awesome jQuery library code in here
})(window);

我不明白为什么需要这两个参数。

既然window是一个全局变量,为什么还要传入呢?传入全局参数并在同名闭包中访问它的目的是什么?

undefined 参数有什么用?为什么没有任何值传递给它?

最佳答案

我很确定这个问题已经得到解答,但是:

  • 传入 window a) 允许代码压缩以修改名称(即用匿名函数中的单字母变量名称替换它)和 b) 确保变量引用定义库时的 window 对象,以防有人在加载 jQuery 后在全局范围内重新定义 window

  • undefined 作为参数(但不传入值)对 undefined 做同样的事情,允许变量修改并避免 出现问题>undefined 变量被重新定义(是的,Javascript 允许这样做)。

我相信在这两种情况下,这都应该加快对变量的引用,因为它使两个全局变量在函数范围内可用,解释器将在查看全局范围之前搜索它们。但老实说,我无法想象这里的性能差异是巨大的 - 我认为最大的问题是变量名修改,这使得代码在缩小时更紧凑。

关于javascript - 为什么这两个参数在 jQuery 源码中是为什么呢?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7922963/

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