(function($){…})(jQuery)这里实际上是匿名函数。主要作用模拟块级作用域,减少全局变量,在大型多人开发的项目中,使用块级作用域,会大大降低命名冲突的问题,从而避免产生灾难性的后果。
匿名函数是没有函数名的普通函数。
function(){}
单独运行一个匿名函数,由于不符合语法要求,会报错解决方法只需要给匿名函数包裹一个括号即可!
(function(){})
如果需要执行匿名函数,在匿名函数后面加上一个括号即可立即执行!
(function(){})()
如果需要传值,直接将参数写到括号内即可:
(function (str){
console.log(str);
//输出你好
})("你好")
而(function($){...})(jQuery)
则是一样的,之所以只在形参使用$,是为了不与其他库冲突,所以实参用jQuery
其实就等于
var fn = function($){…};
fn(jQuery);
其实可以这么理解,不过要注意的是fn是不存在的
那个函数直接定义,然后就运行了。就“压缩”成下面的样子了
(function($){…})(jQuery)
简单理解是(function($){…})(jQuery)用来定义一些需要预先定义好的函数
$(function(){ })则是用来在DOM加载完成之后运行\执行那些预行定义好的函数.