- 浏览: 198891 次
- 性别:
- 来自: 合肥
文章分类
- 全部博客 (156)
- 职场人生 (6)
- 开发时遇见的问题 (14)
- 技术学习 (13)
- Hibernate开发与实战学习 (10)
- Junit (9)
- 设计模式 (4)
- Lucene (1)
- Log4J (1)
- JBPM (0)
- OA (0)
- Spring (0)
- Struts2 (1)
- Android (2)
- Python (1)
- 生活点点滴滴 (8)
- Java (11)
- JavaScript&Jquery (22)
- Hadoop (1)
- JSP&Servlet (8)
- dom4j (2)
- mysql (2)
- Oracle (7)
- PHP (0)
- Jmeter (1)
- 测试方面的东东 (1)
- 励志文章 (3)
- CSS (4)
- XHTML&HTML (1)
- Linux相关 (7)
- C&C++ (2)
- Unix C (3)
- 开发软件配置及软件应用 (2)
- English Study And Movie Scripts (3)
- My English World (1)
最新评论
-
yingzhixing:
不错不错~~
利用org.springframework.web.util中的HtmlUtils工具类 -
yonguo:
博主能把完整的pom配置贴一下共享吗?
在maven中使用YUI-Compressor -
yan578351314:
我的为什么会出现语法错误呢?一大推错误信息...
在maven中使用YUI-Compressor -
jstenjoy:
什么是JBPM -
疯狂的草儿:
cat_rat 写道我是2010年9月份进入公司的--2010 ...
辞职了,离开了我工作的第一家公司
JQuery的extend扩展方法:
Jquery的扩展方法extend是我们在写插件的过程中常用的方法,该方法有一些重载原型,在此,我们一起去了解了解。
一、Jquery的扩展方法原型是:
<!-- Code highlighting produced by Actipro CodeHighlighter (freeware) http://www.CodeHighlighter.com/ --> extend(dest,src1,src2,src3...);
它的含义是将src1,src2,src3...合并到dest中,返回值为合并后的dest,由此可以看出该方法合并后,是修改了dest的结构的。如
果想要得到合并的结果却又不想修改dest的结构,可以如下使用:
<!-- Code highlighting produced by Actipro CodeHighlighter (freeware) http://www.CodeHighlighter.com/ --> var newSrc = $.extend({},src1,src2,src3...) // 也就是将"{}"作为dest参数。
这样就可以将src1,src2,src3...进行合并,然后将合并结果返回给newSrc了。如下例:
<!-- Code highlighting produced by Actipro CodeHighlighter (freeware) http://www.CodeHighlighter.com/ -->var result = $.extend({},{name: "Tom",age:21},{name:"Jerry",sex:"Boy"})
那么合并后的结果
<!-- Code highlighting produced by Actipro CodeHighlighter (freeware) http://www.CodeHighlighter.com/ --> result={name:"Jerry",age:21,sex:"Boy"}
也就是说后面的参数如果和前面的参数存在相同的名称,那么后面的会覆盖前面的参数值。
二、省略dest参数
上述的extend方法原型中的dest参数是可以省略
的,如果省略了,则该方法就只能有一个src参数,而且是将该src合并到调用extend方法的对象中去,如:
1、$.extend(src)
该方法就是将src合并到jquery的全局对象中去,如:
<!-- Code highlighting produced by Actipro CodeHighlighter (freeware) http://www.CodeHighlighter.com/ --> $.extend({ hello:function(){alert('hello');} });
就是将hello方法合并到jquery的全局对象中。
2、$.fn.extend(src)
该方法将src合并到jquery的实例对象中去,如:
<!-- Code highlighting produced by Actipro CodeHighlighter (freeware) http://www.CodeHighlighter.com/ --> $.fn.extend({ hello:function(){alert('hello');} });
就是将hello方法合并到jquery的实例对象中。
下面例举几个常用的扩展实例:
<!-- Code highlighting produced by Actipro CodeHighlighter (freeware) http://www.CodeHighlighter.com/ -->$.extend({net:{}});
这是在jquery全局对象中扩展一个net命名空间。
<!-- Code highlighting produced by Actipro CodeHighlighter (freeware) http://www.CodeHighlighter.com/ --> $.extend($.net,{ hello:function(){alert('hello');}})
这是将hello方法扩展到之前扩展的Jquery的net命名空间中去。
三、Jquery的extend方法还有一个重载原型:
<!-- Code highlighting produced by Actipro CodeHighlighter (freeware) http://www.CodeHighlighter.com/ -->extend(boolean,dest,src1,src2,src3...)
第一个参数boolean代表是否进行深度拷贝,其余参数和前面介绍的一致,什么叫深层拷贝,我们看一个例子:
<!-- Code highlighting produced by Actipro CodeHighlighter (freeware) http://www.CodeHighlighter.com/ -->var result = $.extend( true, {}, { name: "John", location: {city:"Boston",county:"USA"} }, { last: "Resig", location: {state: "MA",county:"China"} } );
我们可以看出src1中嵌套子对象location:{city:"Boston"},src2中也嵌套子对象location:
{state:"MA"},第一个深度拷贝参数为true,那么合并后的结果就是:
<!-- Code highlighting produced by Actipro CodeHighlighter (freeware) http://www.CodeHighlighter.com/ -->result={name:"John",last:"Resig", location:{city:"Boston",state:"MA",county:"China"}}
也就是说它会将src中的嵌套子对象也进行合并,而如果第一个参数boolean为false,我们看看合并的结果是什么,如下:
<!-- Code highlighting produced by Actipro CodeHighlighter (freeware) http://www.CodeHighlighter.com/ -->var result =$.extend( false, {}, { name: " John", location:{city: "Boston",county:"USA"} }, { last: "Resig", location: {state: "MA",county:"China"} } );
那么合并后的结果就是:
<!-- Code highlighting produced by Actipro CodeHighlighter (freeware) http://www.CodeHighlighter.com/ --> result ={name:"John",last:"Resig",location:{state:"MA",county:"China"}}
以上就是$.extend()在项目中经常会使用到的一些细节。
发表评论
-
Firebug 调试器开发中的12个技巧
2011-05-26 21:14 1535相信很多从事Web开发工作的开发者都听说和使用过Firebu ... -
锋利的jQuery 第三章 jQuery中的DOM操作
2011-02-05 02:04 836第三章 jQuery中的DOM操作 -
锋利的jQuery第二章 选择器
2011-01-31 23:46 953锋利的jQuery第二章 选择器 <!DOC ... -
锋利的Jquery第一章 认识jQuery
2011-01-29 13:34 1069锋利的Jquery第一章jQuery 1.3.1 配置 ... -
fckeditor
2010-12-17 16:24 732下载地址:http://ckeditor.com/downl ... -
JSValidation用户手册
2010-12-17 13:16 10851 . JSValidation是什么? ... -
测试Gadget时,IE7下出现的问题
2010-11-13 08:24 674一个比较弱智的错误: function initSPI ... -
JS中substr和substring的用法和区别
2010-09-10 17:24 732substr 和 substring都是JS ... -
判断浏览器的名称和版本的一段javascript
2010-07-07 14:40 916navigator是一个独立的 ... -
FireBug Console API
2010-07-06 14:38 786console.log(object[, object, .. ... -
APtana
2010-07-01 13:29 696http://www.aptana.com/downloads ... -
JS的正则表达式(五)
2010-02-26 15:57 1062exec方法详解 exec方法的返回值 exec方法返回的 ... -
JS的正则表达式(四)
2010-02-26 14:36 1410括号(2) 前面我们曾经讨论过一次括号的问题,见下面这个例子 ... -
JS的正则表达式(三)
2010-02-26 13:28 1129边界与非边界\b表示的边界的意思,也就是说,只有字符串的开头和 ... -
JS的正则表达式(二)
2010-02-26 10:17 1152二选一,正则表达式中的或,“|“ b|c表示,匹配b或者c。 ... -
JS的正则表达式(一)
2010-02-25 16:05 1327创建一个正则表达式有两种方法 //第一种 var reg ... -
JavaScript函数对象
2010-02-24 10:10 785在JavaScript中,函数也是对象,我们使用下面的语句 ... -
JavaScript常用内置对象(三)
2010-02-24 10:03 1018<script language=" ... -
JavaScript常用内置对象(二)
2010-02-24 09:42 902<script language=" ... -
JavaScript常用对象(一)
2010-02-24 09:13 730<Script language="ja ...
相关推荐
jQuery:jQuery.extend函数详解
jquery.extend函数详解 JQuery的extend扩展方法: Jquery的扩展方法extend是我们在写插件的过程中常用的方法,该方法有一些重载原型,在此,我们一起去了解了解。 一、Jquery的扩展方法原型是: extend(dest,src1...
其中jQuery.extend()方法能够创建全局函数或者选择器,而jQuery.fn.extend()方法能够创建jQuery对象方法. 例如: 代码如下: jQuery.extend({ showName : function(name){ alert(name) } }); jQuery.showName...
jQuery_extend 函数详解
extend()是jQuery中一个重要的函数,作用是实现对对象的扩展, 它经常用于jQuery插件的开发,jQuery内部也使用它来扩展属性方法,如上篇文章中讲到的noConflict方法,就是用extend方法来扩展的。 在jQuery的API手册...
jQuery.extend 函数详解JQuery的extend扩展方法:Jquery的扩展方法extend是我们在写插件的过程中常用的方法,该方法有一些重载原型,在此,我们一起去了解了解。一、Jquery的扩展方法原型是:
jQuery自定义了jQuery.extend()和jQuery.fn.extend()方法.其中jQuery.extend()方法能够创建全局函数或者选择器,而jQuery.fn.extend()方法能够创建jQuery对象方法.
1.$.extend({},defaults, options) 这样做的目的是为了保护包默认参数。也就是defaults里面的参数。 做法是将一个新的空对象({})做为$.extend的第一个参数,defaults和用户传递的参数对象紧随其后,这样做的好处是...
extend()函数是jQuery的基础函数之一,作用是扩展现有的对象
在jQuery中定义 jQuery.extend = jQuery.fn.extend 所以这两个函数式相同的 一、Jquery的扩展方法原型是: extend(dest,src1,src2,src3…); 它的含义是将src1,src2,src3…合并到dest中,返回值为合并
主要为大家详细介绍了jQuery继承extend用法,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
3、插件的要素(扩展jQuery本身的方法,$.extend ; 给jQuery对象添加方法,对jQuery.prototype进行扩展 ;添加一个函数到jQuery.fn(jQuery.prototype)对象,该函数的名称就是你的插件名称) 4、代码部分: 注意...
【3】RascallySnake的JQuery.extend()详解一.介绍 插件编写的目的是给已经有的一系列方法或函数做一个封装,以便在其他地方重复使用,方便后期维护。 JQuery除了提供一个简单、有效的方式进行管理元素以及脚