function($)
和$(function())
有什么区别?
此代码是否多余?
(function($) {
"use strict";
$(function() {
run_code();
});
})(jQuery);
它们都是文档就绪功能吗?
答案 0 :(得分:3)
它们可能看起来相似,但是它们完全无关。
这称为立即调用函数表达式(IIFE)。它们不是特定于jQuery的,但是在这种情况下,即使函数外部的某些内容覆盖了全局{{1},它也可以确保$
会引用jQuery
到$
}和其他变量。为尽量减少与其他库的冲突,这是一种防御性做法。
另一个好处是,此函数中声明的任何变量都不会添加到全局范围中。即使没有jQuery,这也是一种常见的做法,可用于帮助模块化代码并避免污染全局范围。
(function($) {
"use strict";
})(jQuery);
这告诉DOM在“准备就绪”时jQuery执行指定的功能:
$(function() {
run_code();
});