$.extend 的相关用法
1.1 $.extend(result,item1,item2…..)
将所有的参数项都合并result中,返回result,会破坏result的结构。
1.2 $.extend({},item1,item2,……)
将所得的结果全部合并在{}中,并返回,不会破坏原有的项的结构。
1.3 $.extend(bool,{},item1,item2….)
Extend方法还有带bool型参数的重载。
bool型参数为true表示深拷贝,为false时表示浅拷贝。
示例:
var obj={name:“vanida”,age:25,address{provice:”河南”,city:”郑州”}};
var obj1={sex:”girl”,address{city:” 上海”}};
var result=$.extend(true,obj,obj1);
var result1=$.extend(false,obj,obj1);
结果:
result={name:“vanida”,age:25,sex:”gril”,address:{provice:”河南”,city:”上海”}};
result1={name:“vanida”,age:25,sex:”gril”,address:{ city:”上海”}};
说明:
当参数为ture时,即为深拷贝,obj的子项有与obj1中的子项相同属性的值不一样时,obj中子项的值会将obj1子项中的值给覆盖,当子项obj的属性跟obj1中的属性不同时,会与obj进行合并。
当参数为false时,子项obj中的子项中与obj1中的子项属性相同时,obj1中子项的属性值会将obj中的值给完全覆盖。
1.4 $.extend(item)
该方法是将item合并到Jquery的全局对象中去,相当于为Jquery全局对象添加了一个
静态方法(对应这里的静态方法,当然还有实例方法,在后边有介绍)。
示例:
$.extend({SayHello:function(value){alert(“hello “+value);}});
这样写过之后,就可以直接调用SayHello方法:
$.SayHello(“Olive”);
说明:该方法相当于为Jquery类添加了新的方法。
1.5 $.fn.extend(item)
上边提到的$.extend(item)说是为Jquery类添加了静态方法,那么这里的$.fn.extend(item)就是为每一个实例添加一个实例方法了。
示例:
$.fn.extend({sayName:function(name){alert(“hello “+name);}});
这样写过之后,在获取每一个示例之后,都可以调用该方法:
$(“#id”).sayName(“lucas”);
1.6 $.fn是指jquery的命名空间,加上fn上的方法及属性,会对jquery实例每一个有效。
如扩展$.fn.hello(),即$.fn.hello()是对jquery扩展了一个hello方法,那么后面你的每一个jquery实例都可以引用这个方法了.
那么你可以这样子:$("#dom").hello();
源码:
jQuery.fn = jQuery.prototype ={
init: function( selector, context ){//....
//......
};
随机推荐
- 使用命令行创建一个vue项目的全部命令及结果
dell@DESKTOP-KD0EJ4H MINGW64 /f/05 项目 $ npm install --global vue-cli npm WARN deprecated coffee-scri ...
- css单行文本及多行文本溢出显示省略号
关于文本溢出的相关属性: 1. text-overflow: clip|ellipsis|string; 该属性规定当文本溢出包含元素时发生的事情. clip : 修剪文本. ellipsis : ...
- js实现隔行变色-------Day40
版权声明:本文为博主原创文章.未经博主同意不得转载. https://blog.csdn.net/marSmile_tbo/article/details/31837367 就这样開始了自己的第二个项 ...
- github的本地配置和项目创建
之前完成了github的安装和账号的注册,接下来要进行项目的创建和本地代码仓库的建立 1.创建项目 2.填写项目相关信息 注意:在给项目起名时,尽量起一些有意义的名字,否则会被管理员删除.因为服务器上 ...
- Vue中router两种传参方式
Vue中router两种传参方式 1.Vue中router使用query传参 相关Html: <!DOCTYPE html> <html lang="en"> ...
- Pl/SQl 安装和配置Oracle 数据库连接
在进行企业开发时,数据库(oracle)一般在我们本地安装的:另外,oracle数据库比较大,在本地安装,会拖慢电脑的速度.我们可以通过oracle客户端,远程连接数据库.下面介绍自己的安装方式 1. ...
- PlanetTogether APS安装与配置
一.PT 安装 1.PT Server与Client的下载 下载网址:https://download.planettogether.com/ 2.安装.net framework 4.6.2 安装P ...
- Go语言学习笔记十一: 切片(slice)
Go语言学习笔记十一: 切片(slice) 切片这个概念我是从python语言中学到的,当时感觉这个东西真的比较好用.不像java语言写起来就比较繁琐.不过我觉得未来java语法也会支持的. 定义切片 ...
- springboot-10-前端页面整合, thymeleaf, freemarker, jsp 模板使用
springboot 中不建议使用jsp作为页面展示, 怎么使用可以看: http://412887952-qq-com.iteye.com/blog/2292471 关于什么是thymeleaf, ...
- Java 注解实例
package com.annotation; import java.lang.annotation.Retention; import java.lang.annotation.Target; i ...