// 该方法被绑定在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的一些静态方法的更多相关文章

  1. 2、jQuery的一些静态方法

    上次粗略说了jQuery的整体结构,这次挑一些静态方法先说一下吧 一.noConflict函数 这个函数是个比较有意思的函数,基本上很少用到,之所以说他是因为这个函数在最下面,太显眼了,先把他解决掉. ...

  2. jQuery对象合并、jQuery添加静态方法、jQuery添加DOM实例方法

    实例效果: 代码演示: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http:/ ...

  3. jQuery的核心对象、原型对象、静态方法、动态方法

    什么叫jQuery的核心对象? $ $===jQuery 什么叫jQuery的原型对象? $.fn $.fn===$.prototype 什么叫静态方法? 在构造函树上定义的方法,静态方法通过构造函数 ...

  4. JQuery插件定义

    一:导言 有些WEB开发者,会引用一个JQuery类库,然后在网页上写一写$("#"),$("."),写了几年就对别人说非常熟悉JQuery.我曾经也是这样的人 ...

  5. jQuery 3.0的buildFragment

    在 jQuery3.0中,buildFragment 是一个私有函数,用来构建一个包含子节点 fragment 对象.这个 fragment 在 DOM1 中就已经有了,所有浏览器都支持.当频繁操作( ...

  6. jQuery插件入门

    一:导言 有些WEB开发者,会引用一个JQuery类库,然后在网页上写一写("#"),("#"),("."),写了几年就对别人说非常熟悉JQ ...

  7. jQuery源代码学习之九—jQuery事件模块

    jQuery事件系统并没有将事件坚挺函数直接绑定在DOM元素上,而是基于事件缓存模块来管理监听函数的. 二.jQuery事件模块的代码结构 //定义了一些正则 // // //jQuery事件对象 j ...

  8. (转载)jQuery 1.6 源码学习(二)——core.js[2]之extend&ready方法

    上次分析了extend方法的实现,而紧接着extend方法后面调用了jQuery.extend()方法(core.js 359行),今天来看看究竟core.js里为jQuery对象扩展了哪些静态方法. ...

  9. (转载)jQuery 1.6 源码学习(一)——core.js[1]之基本架构

    在网上下了一个jQuery 1.2.6的源码分析教程,看得似懂非懂,于是还是去github上下载源码,然后慢慢看源代码学习,首先来说说core.js这个核心文件吧. jQuery整体的基本架构说起来也 ...

随机推荐

  1. R语言ggplot2-labs 函数

    labs 函数主要有以下三个用途: 1) 设置图片的标题(title), 子标题(subtitle), 引用(caption) 代码示例: ggplot(mtcars, aes(mpg, wt, co ...

  2. Ubuntu 安装IntelliJ IDEA

    1. 下载IDEA    官网地中:http://www.jetbrains.com/idea/download/index.html    选择对应操作系统的版本.下载后,我的文件名称为: idea ...

  3. UART Receive FIFO and Receive Timeout

    为什么UART要有FIFO? 现代的CPU运转速度越来越快.UART的波特率通常达不到10M,在没有FIFO的情况下.每次填充数据给UART 或者 从UART取数据都会占用CPU的时间.这是极大的浪费 ...

  4. categorys源码

    CREATE TABLE `category` ( `id` INT(10) UNSIGNED NOT NULL AUTO_INCREMENT, `editdate` char(20) NOT NUL ...

  5. 156 UIImageView 和 CADisplayLink 实现 Tom 汤姆猫动画效果的区别(扩展知识:分组(黄色文件夹)和文件夹引用(蓝色文件夹)区别)

    (1)UIImageView 的动画操作,来自定义循环播放动画(不建议使用,内存消耗大) (2)CADisplayLink 是一个计时器,但是同 NSTimer 不同的是,CADisplayLink ...

  6. 和我一起学《HTTP权威指南》——客户端识别与cookie机制

    客户端识别与cookie机制 服务器需要区别是哪个客户端. 个性化接触 HTTP是匿名.无状态的请求/响应协议. Web站点希望: 对客户端的用户有更多的了解 追踪用户浏览页面的行为 因此,产生了几种 ...

  7. 11 go并发编程-上

    其他编程语言并发编程的效果 并发编程可以让开发者实现并行的算法以及编写充分利用多核处理器和多核性能的程序.在当前大部分主流的编程语言里,如C,C++,java等,编写维护和调试并发程序相比单线程程序而 ...

  8. geoserver 地图性能和缓存

    1.什么是GeoWebCache GeoWebCache是地图缓存软件公司成员开发的一个基于java的开源项目.和其他的缓存系统相似,它作为一个客户端和地图服务的代理.它可以单独部署,适用于任何基于W ...

  9. linux环境中,如何使用tar来创建压缩包?解压缩?

    需求说明: 今天需要将一个tomcat目录打成压缩包,使用zip感觉有点慢,所以就想用tar来试试,之前一直使用tar的解压缩命令, 今天试试tar的压缩命令 操作过程: 1.通过tar的zcf选项进 ...

  10. WCF+Nhibernate循环引用导致序列化的问题

    WCF+Nhibernate 在查询中只要涉及到表关联,都会存在一个循环引用而导致客户端不能反序列化的问题. 解决的办法: 1.多对一关联中,设置lazy="false". 2.一 ...