$(function(){}) 与 (function(){}())的区别在哪里?

jquery中的

$(function(){

})

与自闭合函数有哪些区别呢?

(function(){}(

))
阅读 4.8k
6 个回答

第一个是 DOM 准备好后 jQuery 的回调函数。jQuery官方文档的解释如下:

jQuery offers several ways to attach a function that will run when the DOM is ready. All of the following syntaxes are equivalent:

$( handler )
$( document ).ready( handler )
$( "document" ).ready( handler )
$( "img" ).ready( handler )
$().ready( handler )

第二个是自执行函数,也就是定义后立刻执行,常见于 JS 模块化,主要的思路是形成闭包,可以参考下阮一峰老师的文章,里面有自执行函数的作用和介绍:Javascript模块化编程(一):模块的写法

jquery那个是回调函数,等价于:

$(document).ready(function() {});

js那个匿名函数基本是用来立即执行的。

(function(whoAmI) {
  // 立即执行
})('原罪');

就是说有一些变量不想污染全局,或者想整一些私有变量啥的

一个是页面加载玩成后执行,一个是隐式匿名函数

意义不同 完全不是一回事

  1. 普通回调函数
  2. 立即执行函数
新手上路,请多包涵

楼上解释都很到位了!

推荐问题