JQuery插件写法

JQuery插件又分为类扩展方法和对象扩展方法两种,类插件是定义在JQuery命令空间的全局函数,直接通过可调用,如可调用,如.ajax();对象插件是扩展JQuery对象的函数,通过选择的具体对象调用,类似$(dom).html()。

JQuery类扩展方法

直接给$增加方法

  1. $.foo=function(){
  2. console.log('foo');
  3. }
  4. $.bar=function(){
  5. console.log('bar');
  6. }

或者给属性增加命名空间

  1. $.plugin={
  2. foo:function(){},
  3. bar:function(){}
  4. }

通过$.extend(object)

  1. $.extend({
  2. foo:function(){},
  3. bar:function(){}
  4. })

JQuery对象扩展方法

一般JQuery对象级别方法扩展多写在立即执行函数中,避免别名冲突,另外注意函数返回当前this,以方便链式操作。

直接给的原型的原型.fn增加方法

  1. (function($){
  2. $.fn.foo=function(){}
  3. })(JQuery);

通过调用$.fn.extend()

  1. (function($){
  2. $.fn.extend({foo:function(){}})
  3. })

JQuery extend函数用法

jQuery.extend(object);

jQuery.extend( target [, object1 ] [, objectN ] )

合并object1, objectN到target对象,如果只有一个参数,则该target对象会被合并到jQuery对象中。

jQuery.extend( [deep ], target, object1 [, objectN ] )

深度复制合并对象,第一个参数是boolean类型的true时,将object1, objectN深度复制后合并到target中;关于深度复制,是将除null, undefined,window对象,dom对象,通过继承创建的对象外的其它对象克隆后保存到target中;所排除的对象,一是考虑性能,二是考虑复杂度(例如dom及window对象,如果克隆复制,消耗过大,而通过继承实现的对象,复杂程度不可预知,因此也不进行深度复制);

深度与非深度复制区别是,深度复制的对象中如果有复杂属性值(如数组、函数、json对象等),那将会递归属性值的复制,合并后的对象修改属性值不影响原对象。

jQuery.fn.extend(object);

jQuery.fn = jQuery.prototype 即指向jQuery对象的原型链,对其它进行的扩展,作用在jQuery对象上面;一般用此方法来扩展jQuery的对象插件。

详细参考:jQuery extend方法使用及实现

最新文章

  1. 3.C#WinForm基础累加器
  2. winfrom自定义滚动条
  3. 用介个新的blog咯..
  4. 获取google翻译的音频文件_合并音频文件的方法
  5. MVC认知路【点点滴滴支离破碎】【五】----form表单上传单个文件
  6. ODAC(V9.5.15) 学习笔记(十八) 数据集缓冲模式
  7. Maven 的 HelloWorld
  8. [WinForm] 使用 WebBrowser 操作 HTML 頁面的 Element-摘自网络
  9. c++ THUNK技术
  10. Linux 程序,进程和线程
  11. PHP 以最快的方式判断字符串是否以某给定字符串开始
  12. go微服务框架go-micro深度学习-目录
  13. Handler实现与机制 && Blocking Queue && IdleHandler使用
  14. 这份书单,给那些想学Hadoop大数据、人工智能的人
  15. LNMP 添加 memcached服务
  16. windows消息传送(自定义消息和WM_COPYDATA)
  17. node启动时候报错 Error: Cannot find module 'express'
  18. hdu 5111 树链剖分加函数式线段树
  19. 一步一步学习大数据:Hadoop 生态系统与场景
  20. web系统中上下移动功能的实现

热门文章

  1. 用windows远程连接linux桌面(使用tightvnc或者tigervnc)
  2. json 基础
  3. SystemInfo.deviceUniqueIdentifier 返回机器码
  4. java基础知识回顾之java Socket学习(一)--UDP协议编程
  5. sun.misc.unsafe类的使用
  6. NAMESPACE_ERR: An attempt is made to create or change an object in a way which is incorrect with regard to namespaces.
  7. 【零基础学习iOS开发】【02-C语言】05-进制
  8. nginx+apache+php+mysql服务器集群搭建
  9. create user 'root'@'localhost' identified by 。。。
  10. Android getActionBar()报空指针异常