可能重复:
javascript中的“$”符号是什么意思
$
匿名函数开头的区别是什么?
这个例子:
(function() {
...
})();
对比这个:
$(function() {
...
})();
可能重复:
javascript中的“$”符号是什么意思
$
匿名函数开头的区别是什么?
这个例子:
(function() {
...
})();
对比这个:
$(function() {
...
})();
(function() {})();
上面的行是创建一个匿名函数,然后立即执行它
$(function() {})();
假设您已加载 jQuery,上面的行会导致错误。这部分 $(function(){}) 将一个匿名函数传递给运行的 jQuery。jQuery 会返回一个 Document 对象给你。因为您有结束括号 (),所以 Javascript 将尝试将 Document 对象作为函数执行。因为 Document 对象不是函数,所以会引发 TypeError 异常。
像所有其他答案一样
$(function(){
...
});
真的只是
jQuery(function(){
});
第二个将相同,它与您示例中的其他类型的函数之间的区别在于,第一个必须从某个地方调用,其中作为 jQuery 版本 - 如果 jQuery 以 HTML 加载,它将自动运行当文件准备好时。
您的第一个示例是一个自执行函数,它在定义后立即开始执行,而第二个示例在文档准备好被操作时由 jQuery 执行。
为了更好地理解为什么第一个模式有用,您可以参考这个 SO answer。
您还可以在函数文档中阅读有关将函数传递给 jQuery 的更多.ready()
信息。