Javascript 函数(jQuery、window、document)的后续操作是什么;什么意思?
我有以下插件:Javascript 函数(jQuery、window、document)的后续操作是什么;什么意思?,javascript,jquery,Javascript,Jquery,我有以下插件: ;(function($, window, document) { ... ... })(jQuery, window, document); 我能理解这是什么;是为了并且也认识到$是jQuery,但是有人能解释为什么函数后面跟(jQuery、窗口、文档) 它被称为“自激活”或“立即调用”函数。这意味着函数在使用最后一组括号中的参数创建后立即运行 这是一个 这意味着,函数将立即声明和执行。这样做是为了创建一个新的作用域。这是一个立即被调用的匿名函数(所谓的IIFE) 传递jQ
;(function($, window, document)
{
...
...
})(jQuery, window, document);
我能理解这是什么;是为了并且也认识到$是jQuery,但是有人能解释为什么函数后面跟(jQuery、窗口、文档) 它被称为“自激活”或“立即调用”函数。这意味着函数在使用最后一组括号中的参数创建后立即运行 这是一个
这意味着,函数将立即声明和执行。这样做是为了创建一个新的作用域。这是一个立即被调用的匿名函数(所谓的IIFE)
传递
jQuery
会将其化名为$
,window
和document
,这样他们就可以确保引用的是外部环境中的正确版本。我不确定我是否完全理解您的要求,但他们所做的是传递jQuery
对象,函数的窗口
对象和文档
对象
他们这样做很可能是出于性能原因。这使得最小化可以将对窗口
和文档
的所有引用缩短为类似w
和d
的内容,因为它是局部变量。在大型库中,这可以节省几个字节
此外,我相信(没有参考atm)访问局部变量比访问全局变量(实际上是一个微观优化)要快一些。这被称为立即调用函数表达式或自动执行匿名函数。它使开发人员能够隐藏其私有声明
;( // <---------------+
// | encapsulate the function
function($, window, document) { // <--+ declare | and call it passing three
// | anonymous | arguments.
} // <--+ function |
// |
)(jQuery, window, document); // <---------------+
;(//这是什么意思;在;(function?@AshokRaj这可能是一种确保在函数之前未正确关闭的任何代码都被关闭的方法,这样它就不会干扰此代码。很好,谢谢:)这不会导致递归吗???@AshokRaj你认为它会以什么方式导致递归?如果我错了,我很抱歉,但是当函数本身在末尾被调用时,这种情况不会一直发生吗?