- 1、本文档共10页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
《jQuery中extends详解
jQuery.extend 函数详解
JQuery的extend扩展方法:????? Jquery的扩展方法extend是我们在写插件的过程中常用的方法,该方法有一些重载原型,在此,我们一起去了解了解。??????一、Jquery的扩展方法原型是:
extend(dest,src1,src2,src3...);
????? 它的含义是将src1,src2,src3...合并到dest中,返回值为合并后的dest,由此可以看出该方法合并后,是修改了dest的结构的。如果想要得到合并的结果却又不想修改dest的结构,可以如下使用:
var newSrc=$.extend({},src1,src2,src3...)//也就是将{}作为dest参数。
????? 这样就可以将src1,src2,src3...进行合并,然后将合并结果返回给newSrc了。如下例:
var result=$.extend({},{name:Tom,age:21},{name:Jerry,sex:Boy})
?
????? 那么合并后的结果
result={name:Jerry,age:21,sex:Boy}
????? 也就是说后面的参数如果和前面的参数存在相同的名称,那么后面的会覆盖前面的参数值。
??????二、省略dest参数??????上述的extend方法原型中的dest参数是可以省略的,如果省略了,则该方法就只能有一个src参数,而且是将该src合并到调用extend方法的对象中去,如:? 1、$.extend(src)? 该方法就是将src合并到jquery的全局对象中去,如:
$.extend({ hello:function(){alert(hello);} });
? 就是将hello方法合并到jquery的全局对象中。? 2、$.fn.extend(src)? 该方法将src合并到jquery的实例对象中去,如:
$.fn.extend({ hello:function(){alert(hello);} });
?
?就是将hello方法合并到jquery的实例对象中。
? 下面例举几个常用的扩展实例:
$.extend({net:{}});
?
这是在jquery全局对象中扩展一个net命名空间。
$.extend($.net,{ hello:function(){alert(hello);} })
? 这是将hello方法扩展到之前扩展的Jquery的net命名空间中去。
? 三、Jquery的extend方法还有一个重载原型:??
extend(boolean,dest,src1,src2,src3...)
????? 第一个参数boolean代表是否进行深度拷贝,其余参数和前面介绍的一致,什么叫深层拷贝,我们看一个例子:
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,那么合并后的结果就是:?
result={name:John,last:Resig, location:{city:Boston,state:MA,county:China}}
?
???????也就是说它会将src中的嵌套子对象也进行合并,而如果第一个参数boolean为false,我们看看合并的结果是什么,如下:
var result=$.extend( false, {}, { name: John, location:{city: Boston,county:USA} }, { last: Resig, location: {state: MA,county:China} } );
???? 那么合并后的结果就是:
result={name:John,last:Resig,location:{state:MA,county:China}}
下面的实现与jQuery中的extend()会更接近一些:Javascript代码?????$ = function() {??????? var copyIsArray,???????????
文档评论(0)