+ -
当前位置:首页 → 问答吧 → 请问 (function($){...})(jQuery)什么意思啊?

请问 (function($){...})(jQuery)什么意思啊?

时间:2009-12-24

来源:互联网

我看jquery插件都是这么写的,这句怎么理解啊?

作者: liujingjing5   发布时间: 2009-12-24

这里实际上是匿名函数

function(arg){...}
这就定义了一个匿名函数,参数为arg

而调用函数时,是在函数后面写上括号和实参的,由于操作符的优先级,函数本身也需要用括号,即:
(function(arg){...})(param)
这就相当于定义了一个参数为arg的匿名函数,并且将param作为参数来调用这个匿名函数

而(function($){...})(jQuery)则是一样的,之所以只在形参使用$,是为了不与其他库冲突,所以实参用jQuery

作者: keakon   发布时间: 2009-12-24

楼上的把形参跟实参都搬来了,人家听的懂吗

作者: wapco   发布时间: 2009-12-25

哦,谢谢你。是不是就等于

var fn = function($){....};
fn(jQuery);

一样吧

作者: liujingjing5   发布时间: 2009-12-25

啊,我的简单理解是(function($){...})(jQuery)用来定义一些需要预先定义好的函数
$(function(){ })则是用来在DOM加载完成之后运行\执行那些预行定义好的函数.

作者: fanxiaojie   发布时间: 2010-01-01

越看越糊涂……

作者: 吉光片羽   发布时间: 2010-01-04

三楼说的:
var fn = function($){....};
fn(jQuery);

是可以这么理解,不过要注意的是fn是不存在的
那个函数直接定义,然后就运行了。就“压缩”成下面的样子了
(function($){...})(jQuery)

作者: arliang   发布时间: 2010-01-05

一楼说的很好啊,有点基础就能明白
三楼理解很恰当

作者: gaoyongbo026   发布时间: 2010-01-06

一楼的解释,我这个菜鸟看懂了。。。。

作者: yake_yk   发布时间: 2010-01-08

相关阅读 更多