Possible Duplicate:
What does this JavaScript/jQuery syntax mean?
我特别指的是当你这样做时:
(function ($) {
...
})(jQuery);
我以前从未见过这种语法。函数是如何被调用的?我明白当你这样做时:
jQuery(function ($) {
...
});
因为该函数被传递给 jQuery,当 DOM 准备好时,jQuery 可以运行作为参数传递的任何函数,但第一个不同。
最佳答案
What does this JavaScript/jQuery syntax mean? 的重复项
我将在这里发布我的答案,尽管 Jeff Attwood 似乎希望我们接受重复:( https://blog.stackoverflow.com/2010/11/dr-strangedupe-or-how-i-learned-to-stop-worrying-and-love-duplication/ )
<小时/>在编写插件时使用此约定,以确保使用 $ 符号与其他 Javascript 库不发生冲突,同时确保插件作者仍然可以使用此符号:
(function($){
...
})(jQuery);
作者声明了一个带有单个参数 ($) 的匿名函数,然后立即调用它并向其传递 jQuery 对象。这确保了函数被调用并且其中的所有内容都被定义。
更长的符号可能是:
function MyDefs($){
...
}
MyDefs(jQuery);
尽管这会在全局命名空间中创建一个变量 MyDefs。匿名函数模式将全局命名空间留空,避免冲突。
关于javascript - jQuery 的命名空间如何工作?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4285594/