jQuery创建插件的代码分析

 更新时间:2011年04月14日 21:49:40   作者:  
jQuery创建插件的代码分析,需要的朋友可以参考下。
创建jQuery插件,基本的格式是上面这段代码:
复制代码 代码如下:

(function ($)
{
//add code here
})(jQuery)


我们怎么理解?
第一步:function ($){}定义了一个匿名的函数,有一个参数,$是参数名,和其他的参数名没什么区别。
第二步:(function ($){})(jQuery)
我们要执行一个匿名函数的时候,通常用var func = function ($) { },然后func(参数)这样的形式。这里func就是一个Function对象。但更简洁的(function ($) {}),这时用括号,也同样返回括号的内容,也是一个function对象。我们再执行就可以了:(function ($) {})(jQuery)
第三步:这时我们实际上是执行上面定义的匿名函数,执行的时候为该匿名函数提供一个参数值:jQuery。
第四步:所以最终上面的表达等价于:
var func = function($) { };
func(jQuery);
即定义匿名函数,并以jQuery为参数执行一次。

这里的作用是什么呢?
1、解决$符号冲突问题
jQuery中我们用$来代替jQuery,这是为了简化写法。但$这个符号有时候会冲突。
在上面匿名函数的代码中,我们可以习惯性的用$来写,但执行的时候会用jQuery来代替,这就避免了变量的冲突。
2、解决闭包问题:
一般直接写在脚本里的函数,执行后其中未销毁的变量是继续存在,并能够正常访问的。这个和我们一向理解的函数私有变量是不符的。
但我们用这种方式,将需要的所有函数都包在这个匿名函数里,则其中的局部变量,在外部将不能访问,变相的起到了创建私有的局部变量的作用。只有this.开头的那些成员,才是插件外部可以访问的。

相关文章

  • jQuery的ajax下载blob文件

    jQuery的ajax下载blob文件

    这篇文章主要介绍了jQuery的ajax下载blob文件的相关资料,非常不错,具有参考借鉴价值,需要的朋友可以参考下
    2016-07-07
  • JQuery的Ajax请求实现局部刷新的简单实例

    JQuery的Ajax请求实现局部刷新的简单实例

    本篇文章只要是对JQuery的Ajax请求实现局部刷新的简单实例进行了详细的介绍,需要的朋友可以过来参考下,希望对大家有所帮助
    2014-02-02
  • Jquery仿IGoogle实现可拖动窗口示例代码

    Jquery仿IGoogle实现可拖动窗口示例代码

    这个拖动窗口是根据一个Jquery的框架直接做出来的:easywidgets,废话就不多说了,直接把源代码贴出来,让大家学习
    2014-08-08
  • jquery实现界面无刷新加载登陆注册

    jquery实现界面无刷新加载登陆注册

    这篇文章主要为大家详细介绍了jquery实现界面无刷新加载登陆注册,具有一定的参考价值,感兴趣的朋友可以参考一下
    2016-07-07
  • jQuery滚动加载图片效果的实现

    jQuery滚动加载图片效果的实现

    实现滚动加载的一个功能函数,需要的朋友可以参考一下
    2013-03-03
  • 基于jquery实现日历签到功能

    基于jquery实现日历签到功能

    这篇文章主要介绍了基于jquery实现日历签到功能,我们在玩游戏的时候或者登录某手机软件时都会有一个签到功能,记录大家的登录日期,这个日历签到如何实现?本文为大家进行揭晓。
    2015-11-11
  • 读jQuery之五(取DOM元素)

    读jQuery之五(取DOM元素)

    使用过Prototype.js的同学知道$(xx)调用后返回的是HTMLElement或其集合。
    2011-06-06
  • jQuery fadeTo方法调整图片的透明度使用介绍

    jQuery fadeTo方法调整图片的透明度使用介绍

    利用jquery的fadeTo方法可以简单的制作一些很不错的动画效果.可以使图片或者文字或者区块以不同的透明度效果出现.例如以下练习实例,感兴趣的朋友可以参考下哈
    2013-05-05
  • jquery indexOf使用方法

    jquery indexOf使用方法

    当无法确定在某个字符串中是否确实存在一个字符的时候,就可调用 indexOf() 和 lastIndexOf() 方法
    2013-08-08
  • jQuery构造函数init参数分析

    jQuery构造函数init参数分析

    这篇文章主要介绍了jQuery构造函数init参数分析,今天主要是分析一下jQuery中init选择器构造函数,处理选择器函数中的参数,感兴趣的朋友可以了解下
    2015-05-05

最新评论