jQuery的一些静态方法
// 该方法被绑定在jQuery对象上,只能通过$.noConflict()调用
noConflict: function( deep ) {
// 取消$在window上的绑定,方法是将_$绑定到window对象上,从而解除其对jQuery的引用
if ( window.$ === jQuery ) {
window.$ = _$;
}
// 如果传入参数deep为ture,说明用户解除window对象的jQuery属性对jQuery对象的引用,执行$同样的操作
if ( deep && window.jQuery === jQuery ) {
window.jQuery = _jQuery;
}
// 返回jQuery对象,目的是让其它参数或者对象的属性可以引用到它
return jQuery;
},
// 判断参数中传入的对象是不是函数
isFunction: function( obj ) {
return jQuery.type(obj) === "function";
},
// 判断参数是不是windwo对象
isWindow: function( obj ) {
//这是怎么判断的?利用构造器吗?
return obj != null && obj === obj.window;
},
// 判断参数是不是数字,该数字不一定是number类型。
isNumeric: function( obj ) {
// 先判断obj是否可转换为数字,并判断该数字是可穷尽的
return !isNaN( parseFloat(obj) ) && isFinite( obj );
},
// 如果这个对象中没有任何键,则说明他是个空对象。其原型链最顶端的Object.prototype中的属性和方法是不能被遍历的
isEmptyObject: function( obj ) {
var name;
for ( name in obj ) {
return false;
}
return true;
},
// 将第二个数组或者对象合并到第一个数组或对象当中 extend扩展对象和merge合并数组
merge: function( first, second ) {
var l = second.length,
i = first.length,
j = 0;
// 如果第二个参数是个数组
// 但是如果第二个对象是类数组呢?我试过的是会丢弃掉类的部分而只merge数组的部分。这是不是jQuery的bug呢?
if ( typeof l === "number" ) {
for ( ; j < l; j++ ) {
// 将第二个参数添加到第一个参数的后面
first[ i++ ] = second[ j ];
}
// 如果第二个数组中还有值,则继续merge到第一个数组中
} else {
while ( second[j] !== undefined ) {
first[ i++ ] = second[ j++ ];
}
}
//当时数组时,重新设置length的长度,但这不是自动改变的吗?????
first.length = i;
return first;
},
jQuery的一些静态方法的更多相关文章
- 2、jQuery的一些静态方法
上次粗略说了jQuery的整体结构,这次挑一些静态方法先说一下吧 一.noConflict函数 这个函数是个比较有意思的函数,基本上很少用到,之所以说他是因为这个函数在最下面,太显眼了,先把他解决掉. ...
- jQuery对象合并、jQuery添加静态方法、jQuery添加DOM实例方法
实例效果: 代码演示: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http:/ ...
- jQuery的核心对象、原型对象、静态方法、动态方法
什么叫jQuery的核心对象? $ $===jQuery 什么叫jQuery的原型对象? $.fn $.fn===$.prototype 什么叫静态方法? 在构造函树上定义的方法,静态方法通过构造函数 ...
- JQuery插件定义
一:导言 有些WEB开发者,会引用一个JQuery类库,然后在网页上写一写$("#"),$("."),写了几年就对别人说非常熟悉JQuery.我曾经也是这样的人 ...
- jQuery 3.0的buildFragment
在 jQuery3.0中,buildFragment 是一个私有函数,用来构建一个包含子节点 fragment 对象.这个 fragment 在 DOM1 中就已经有了,所有浏览器都支持.当频繁操作( ...
- jQuery插件入门
一:导言 有些WEB开发者,会引用一个JQuery类库,然后在网页上写一写("#"),("#"),("."),写了几年就对别人说非常熟悉JQ ...
- jQuery源代码学习之九—jQuery事件模块
jQuery事件系统并没有将事件坚挺函数直接绑定在DOM元素上,而是基于事件缓存模块来管理监听函数的. 二.jQuery事件模块的代码结构 //定义了一些正则 // // //jQuery事件对象 j ...
- (转载)jQuery 1.6 源码学习(二)——core.js[2]之extend&ready方法
上次分析了extend方法的实现,而紧接着extend方法后面调用了jQuery.extend()方法(core.js 359行),今天来看看究竟core.js里为jQuery对象扩展了哪些静态方法. ...
- (转载)jQuery 1.6 源码学习(一)——core.js[1]之基本架构
在网上下了一个jQuery 1.2.6的源码分析教程,看得似懂非懂,于是还是去github上下载源码,然后慢慢看源代码学习,首先来说说core.js这个核心文件吧. jQuery整体的基本架构说起来也 ...
随机推荐
- tracert
TRACERT命令 编辑 Tracert(跟踪路由)是路由跟踪实用程序,用于确定 IP数据包访问目标所采取的路径.Tracert 命令使用用 IP 生存时间 (TTL) 字段和 ICMP 错误消息来确 ...
- muscle 软件进行多序列比对
今天在使用muscle 软件进行多序列比对时,发现输出的结果全部为gap, 而且还没有明显的报错信息 找了很久之后,终于发现了问题 muscle 为了追求速度,对输入序列的个数和长度进行了限制 下面是 ...
- json过滤某些属性 之@jsonignore
Jackson相关: 使用Jackson相关的注解时一定要注意自己定义的属性命名是否规范. 命名不规范时会失去效果.(例如Ename ,Eage 为不规范命名.“nameE”,“ageE”为规范命名) ...
- <转>Win8.1+CentOS7 双系统 U盘安装
0.准备工作 1.宏碁 Aspire 4752G 笔记本 2.Win8.1 企业版操作系统 3.8G 以上 U 盘 4.UltraISO(当然也可以选择其他的U盘制作工具,看个人喜好) 5.下载 Ce ...
- LinuxMint下tty.js的安装指南
1.简介 tty.js是使用Node.js开发的开源Web-based SSH.通过浏览器即可远程访问shell. 关于Web-based SSH的介绍参考https://en.wikipedia.o ...
- Android学习之——ListView下拉刷新
背景知识 ListView使用非常广泛,对于使用ListView的应用来说,下拉刷新是必不可少要实现的功能. 我们常用的微博.网易新闻,搜狐新闻都使用了这一功能,如下图所示. 微博 搜狐新闻 ...
- GridFS实现原理
GridFS在数据库中,默认使用fs.chunks和fs.files来存储文件. 其中fs.files集合存放文件的信息,fs.chunks存放文件数据. 一个fs.files集合中的一条记录内容如下 ...
- javascript 显示一定范围内的素数(质数)
素数又称质数,是大于1的自然数,并且只有1和它本身两个因数. 具体实现代码如下: 运行代码 <!DOCTYPE HTML> <html> <head lang=" ...
- DNS原理入门
原文链接:http://www.ruanyifeng.com/blog/2016/06/dns.html http://www.ruanyifeng.com/blog/2012/05/internet ...
- 【Nodejs】npm cnpm 淘宝镜像
一.通过命令配置 1. 命令 npm config set registry https://registry.npm.taobao.org 2. 验证命令 npm config get regist ...