Jquery extend()

API文档上的解释:将一个或者多个对象扩展一个新对象,返回一个新的对象
$.extend([deep],target,obj1,objN)
deep:是否深度克隆对象,
target:将要扩展到的新对象,
obj1:待合并到新对象的第一个对象,
objN:待合并到新对象的第N个对象.
例:$.extend(obj1,obj2)//将obj2合并到obj1作为一个新对象,
var obj1 = {
name:"sunwukong",
age:18
}
var obj2 = {

price:50,
weight:100

}
$.extend(obj1,obj2);
此时输出的obj1 所输出内容将是两个对象属性集合,
我们之所以这么做,可以将obj1看做一个普通的人,而添加到obj2之后可以新添加功能,有了新的功能以后能跑能跳
注意:如果此时有相同属性名,obj1中的相同属性名的属性值将被obj2所覆盖

(function($){$.extend({speak:function(){alert("how are you!");}});})(jQuery);

此时我们可以直接调用$.speak这个方法
扩展到这个方法只跟$有关,跟具体实例化对象是没有关系的

Jquery.fn.extend()

把对象挂载到Jquery的prototype属性,来扩展新的jquery方法
Jquery.fn.extend = jquery.prototype ={
speak:function(){
consolor.log('aa')
}}
调用:
$('#btn').speak()//此时我们的fn可以代表的是我们当前这个对象
这种可以用于我们公共的js方法的调用
alert($.fn.jquery );获取当前jquery的版本号

两者的区别

1. 两者的调用方式
$.extend(deep,target,obj1,obj2)
一般由传入全局的函数来调用,主要用于扩展个全局函数,如:$.init(),$.ajax();
jQuery.fn.extend(),
一般由具体的实例对象来调用,可以用来拓展个选择器,例如$.fn.each();
2. 两者的主要功能不同
$.extend(deep,target,obj1,obj2)一般用于给jquery自身添加方法
jQuery.fn.extend(),
3. 开发中可能会遇到的bug
bug之$.extend(deep,target,obj1,obj2)
var obj1 = {
name:"sunwukong",
age:18,
banlance:{big:false,nianji:12,pal:'ad'}
}
var obj2 = { price:50, banlance:{big:true,pal:'ad'} }
var obj3 = {}
$.extend(obj3,obj1,obj2)
obj3{name:"sunwukong",age:18, price:50,banlance:{big:true,pal:'ad'}}
此时相同属性第二个将第一个完全覆盖
var obj3 = {}
$.extend(true,obj3,obj1,obj2)
obj3{name:"sunwukong",age:18, price:50,banlance:{big:true,nianji:12,pal:'ad'}}
此时调用深克隆可以将对应的数据进行obj2中没有的obj1属性也进行添加

详解 Jquery extend() 和Jquery.fn.extend()相关推荐

  1. jquery中方法扩展 ($.fn $.extend) 学习笔记

    A.$.fn 1.$.fn.method() 函数为jQuery对象扩展一个属性和方法(主要用于扩展方法) :method 为自定义方法名 ($.fn 等效 $.prototype) 1 $.fn.b ...

  2. jQuery.extend 函数使用详解

    jQuery.extend 函数使用详解 一.总结 一句话总结: jquery $.extend的作用就是:用于将一个或多个对象的内容合并到目标对象:$.extend( target [, objec ...

  3. jQuery 表单验证插件,jQuery Validation Engine用法详解

    jQuery 表单验证插件,jQuery Validation Engine用法详解 功能强大的 jQuery 表单验证插件,适用于日常的 E-mail.电话号码.网址等验证及 Ajax 验证,除自身 ...

  4. javascript写css样式,原生javascript实现读写CSS样式的方法详解

    原生javascript实现读写CSS样式的方法详解 发布于 2017-05-24 15:05:31 | 120 次阅读 | 评论: 0 | 来源: 网友投递 JavaScript客户端脚本语言Jav ...

  5. jQuery: 插件开发模式详解 $.extend(), $.fn, $.widget()

    原文:http://www.codeceo.com/article/jquery-plugin-develop.html 软件开发过程中是需要一定的设计模式来指导开发的,有了模式,我们就能更好地组织我 ...

  6. jQuery插件开发的两种方法及$.fn.extend的详解

    2019独角兽企业重金招聘Python工程师标准>>> 作者: 字体:[增加 减小] 类型:转载 时间:2014-01-16 我要评论 jQuery插件开发分为两种:1 类级别.2 ...

  7. [zz]jQuery.extend 函数详解

    JQuery的extend扩展方法:       Jquery的扩展方法extend是我们在写插件的过程中常用的方法,该方法有一些重载原型,在此,我们一起去了解了解.       一.Jquery的扩 ...

  8. jQuery的extend详解

    JQuery的extend扩展方法:       Jquery的扩展方法extend是我们在写插件的过程中常用的方法,该方法有一些重载原型,在此,我们一起去了解了解.       一.Jquery的扩 ...

  9. jQuery.extend 函数详解

    JQuery的extend扩展方法: Jquery的扩展方法extend是我们在写插件的过程中常用的方法,该方法有一些重载原型,在此,我们一起去了解了解. 一.Jquery的扩展方法原型 extend ...

最新文章

  1. Python逻辑运算符 and ,or not 的理解
  2. 突破置换模块计算瓶颈,MSRA开源轻量版HRNet,超越主流轻量化网络!|CVPR2021...
  3. eclipse修改文件代码不起作用,输出时还是老的,估计是缓存问题
  4. asp.net多图片上传案例_会计小明的故事-成本核算案例篇
  5. C++协程库coroutine使用指南
  6. 数据量大和高并发解决方法
  7. 获取Android版本信息和电话信息
  8. printdocument python_python学习笔记之wxpython打印预览
  9. vs2005中的aspnetdb(转)
  10. 在linux下安装iNode校园客户端
  11. 【Tensorlayer系列】深度强化学习之FrozenLake介绍及表格型Q学习求解
  12. aix显示服务器ip,AIX系统查看和设置网关和IP配置
  13. 海康摄像头配置固定IP
  14. 微信接口报错:40163
  15. 电脑文件被删除了,找回文件数据的方法有哪些?
  16. 【JY】45天缩短到4天,突发性Fluent仿真任务怎么破?
  17. LostDungeon迷失地牢-壹
  18. HDU Identity Card
  19. 懂计算机能驾驶的月嫂薪水高
  20. Python中 val[0:-1] 切片选择

热门文章

  1. python机器学习经典案例_Python机器学习经典实例
  2. mysql jdbc批处理_JDBC批处理 数据库连接池
  3. 公钥生成命令_ECDSA密钥对生成以及在Token中的应用
  4. 更改下拉列表选择对应
  5. python如何过获取双色球信息_【编程】Python爬虫获取双色球数据
  6. Cocos Creator | 飞刀大乱斗开发教程系列(二)!
  7. 【职场进阶】怎么能够不加班或者少加班?
  8. cmd bat删除文件命令_运用sed命令高效地删除文件的特定行
  9. 吉林大学-信息系统集成-大作业
  10. 【Delphi】微信支付控件(一)(半小时让您系统拥有支付功能)源代码、帮助文件、演示程序