首页 新闻 赞助 找找看

jQuery基础问题:function($), $.extend, $.fn

2
悬赏园豆:20 [已解决问题] 解决于 2012-04-26 11:47

在看jQuery插件的代码时,发现都是这样写的:

(function ($) {
    $.extend($.fn, {});
})(jQuery);

为什么不直接这样写:

$.fn.方法名 = function(){
}

这不是更简单直观吗?

function($)的作用是什么?

$.extend的作用又是什么?

dudu的主页 dudu | 高人七级 | 园豆:31075
提问于:2012-04-26 08:48
< >
分享
最佳答案
2
(function ($) {    $.extend($.fn, {});})(jQuery);
下面内容是一个函数变量,其中$是形参
function($){ 函数体内容 }
整行是对函数的调用,其中jQuery是传递给函数的实参
(function($){ 函数体内容 })(jQuery);

$.extend的作用是扩展$.fn;使用这个函数为检查多个插件之间的冲突提供了可能。
而直接使用
$.fn.方法名=function(){} 就没有机会检查插件之间的冲突了



收获园豆:20
玉开 | 大侠五级 |园豆:8822 | 2012-04-26 09:09

除了检查冲突之外,使用extend可以设置更多属性,比如版本号,插件名字等

玉开 | 园豆:8822 (大侠五级) | 2012-04-26 09:22
其他回答(2)
0

調用方法 也不一樣。

   alert($(this).PI_TestPlugIn.FunctionWithParams(params));

            alert($.PIF_TestExtendFunction.FunctionWithOutParam());

一個要加this,這個你可以查詢一下 2個的區別。

無限遐想 | 园豆:3740 (老鸟四级) | 2012-04-26 09:41
0

学习了,最近有点儿烦。。。jquery头疼

KivenRo | 园豆:1734 (小虾三级) | 2012-04-26 11:19
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册