在看jQuery插件的代码时,发现都是这样写的:
(function ($) { $.extend($.fn, {}); })(jQuery);
为什么不直接这样写:
$.fn.方法名 = function(){ }
这不是更简单直观吗?
function($)的作用是什么?
$.extend的作用又是什么?
(function ($) { $.extend($.fn, {});})(jQuery);
下面内容是一个函数变量,其中$是形参
function($){ 函数体内容 }
整行是对函数的调用,其中jQuery是传递给函数的实参
(function($){ 函数体内容 })(jQuery);
$.extend的作用是扩展$.fn;使用这个函数为检查多个插件之间的冲突提供了可能。
而直接使用
$.fn.方法名=function(){} 就没有机会检查插件之间的冲突了
除了检查冲突之外,使用extend可以设置更多属性,比如版本号,插件名字等
調用方法 也不一樣。
alert($(this).PI_TestPlugIn.FunctionWithParams(params));
alert($.PIF_TestExtendFunction.FunctionWithOutParam());
一個要加this,這個你可以查詢一下 2個的區別。
学习了,最近有点儿烦。。。jquery头疼