Jquery插件写法及extentd函数
2024-10-19 02:19:01
JQuery插件写法
JQuery插件又分为类扩展方法和对象扩展方法两种,类插件是定义在JQuery命令空间的全局函数,直接通过可调用,如可调用,如.ajax();对象插件是扩展JQuery对象的函数,通过选择的具体对象调用,类似$(dom).html()。
JQuery类扩展方法
直接给$增加方法
$.foo=function(){
console.log('foo');
}
$.bar=function(){
console.log('bar');
}
或者给属性增加命名空间
$.plugin={
foo:function(){},
bar:function(){}
}
通过$.extend(object)
$.extend({
foo:function(){},
bar:function(){}
})
JQuery对象扩展方法
一般JQuery对象级别方法扩展多写在立即执行函数中,避免别名冲突,另外注意函数返回当前this,以方便链式操作。
直接给的原型的原型.fn增加方法
(function($){
$.fn.foo=function(){}
})(JQuery);
通过调用$.fn.extend()
(function($){
$.fn.extend({foo:function(){}})
})
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方法使用及实现
最新文章
- 3.C#WinForm基础累加器
- winfrom自定义滚动条
- 用介个新的blog咯..
- 获取google翻译的音频文件_合并音频文件的方法
- MVC认知路【点点滴滴支离破碎】【五】----form表单上传单个文件
- ODAC(V9.5.15) 学习笔记(十八)	数据集缓冲模式
- Maven 的 HelloWorld
- [WinForm] 使用 WebBrowser 操作 HTML 頁面的 Element-摘自网络
- c++ THUNK技术
- Linux 程序,进程和线程
- PHP 以最快的方式判断字符串是否以某给定字符串开始
- go微服务框架go-micro深度学习-目录
- Handler实现与机制 &;&; Blocking Queue &;&; IdleHandler使用
- 这份书单,给那些想学Hadoop大数据、人工智能的人
- LNMP 添加 memcached服务
- windows消息传送(自定义消息和WM_COPYDATA)
- node启动时候报错 Error: Cannot find module 'express'
- hdu 5111 树链剖分加函数式线段树
- 一步一步学习大数据:Hadoop 生态系统与场景
- web系统中上下移动功能的实现
热门文章
- 用windows远程连接linux桌面(使用tightvnc或者tigervnc)
- json 基础
- SystemInfo.deviceUniqueIdentifier 返回机器码
- java基础知识回顾之java Socket学习(一)--UDP协议编程
- sun.misc.unsafe类的使用
- NAMESPACE_ERR: An attempt is made to create or change an object in a way which is incorrect with regard to namespaces.
- 【零基础学习iOS开发】【02-C语言】05-进制
- nginx+apache+php+mysql服务器集群搭建
- create user 'root'@'localhost' identified by 。。。
- Android getActionBar()报空指针异常