探索 jQuery 中 JavaScript 封装的语法
在检查 jQuery 1.4 源代码时,可能会遇到以下封装语法:
(function( window, undefined ) { //All the JQuery code here ... })(window);
此语法引发了有关“未定义”变量用途的问题以及“窗口”的重复出现。
“undefined”的含义
括号内的“undefined”变量不是保留关键字。相反,它是一个可以分配新值的普通变量。在这种情况下,jQuery 将“undefined”设置为“undefined”,以确保全局“undefined”变量保持真正的未定义状态。
“window”的意义
“window”变量指的是全局 JavaScript 对象。通过将“window”作为参数传递给匿名函数,jQuery 创建了对全局对象的本地引用。这种本地引用增强了性能。
当 JavaScript 搜索变量时,它首先检查本地范围。如果在本地没有找到该变量,则搜索将继续到下一个范围,依此类推,直到到达全局范围。通过创建对全局对象的本地引用,JavaScript 可以快速定位“窗口”,而无需搜索所有范围。
这种优化,正如 Nicholas C. Zakas 在他的文章《加速你的 JavaScript》中所描述的那样,”显着提高了 jQuery 库的执行速度。
以上是为什么 jQuery 使用 `(function(window, undefined){...})(window);`?的详细内容。更多信息请关注PHP中文网其他相关文章!