首页 > 代码库 > jquery源码学习(一)core部分

jquery源码学习(一)core部分

这一部分是jquery的核心

  1. jquery的构造器
  2. jquery的核心工具函数

 


 

构造器

jQuery = function( selector, context ) {    // The jQuery object is actually just the init constructor ‘enhanced‘    // Need init if jQuery is called (just allow error to be thrown if not included)    return new jQuery.fn.init( selector, context );}

按照代码所示,jquery对象 实际是 jQuery.fn.init 的实例

jQuery.fn.init 在jquery的core模块并未提供,接下来的模块中会有讲解

 


 

整理了一下jquery核心部分的函数方法

展示方法:    $ 指代 jquery 类

      $.fn 指代 jquery对象

 

jquery对象的内置方法

$.fn.toArray()将jquery对象转化为数组对象
$.fn.get()返回dom对象,无参数或参数为null,返回值与 toArray() 方法相同
$.fn.pushStack(elems)将参数数组压入栈中,将元素缓存
$.fn.each(callbak)循环,callback中返回false,打破循环
$.fn.map(callback)循环,返回由callback返回值组成的数组
$.fn.slice(start,end)截取索引值中的jquery对象
$.fn.first()获取jquery对象中的第一个
$.fn.last()获取jquery对象中的最后一个
$.fn.eq(index)获取jquery对象中索引位置的对象
$.fn.end()获取jquery内部栈内的前一个jquery对象
$.fn.extend(obj)将obj追加到jquery的原型链上,主要用于jquery插件写法
  

 

    

     

    

   

  

  

    

    

  

    

          

 

 

 

 

jquery类提供的内置方法 

$.extend(obj)将obj追加到jquery类中,主要用于jquery插件写法
$.extend(target,obj1....objn)将obj1,objn追加到target中,默认浅拷贝
$.extend(deep,target,obj1....objn)第一个参数为boolean值,设定深拷贝(true)浅拷贝(false)
$.error(msg)抛出异常 // new Error( msg )
$.isFunction(obj)判断obj是否为function
$.isArray(arr)判断arr是否是数组
$.isWindow(obj)判断obj是否为window对象 // obj != null && obj.window === window
$.isNumeric(obj)判断obj是否为数字,obj可为各种进制的数字,当obj为NAN或无穷大时返回false
$.isPlainObject(obj)判断obj是否是纯粹的对象,通过 {} 或 new Object() 创建
$.isEmptyObject(obj)判断obj是否为空对象,会检测原型链,参数为空数组也会返回true 
$.type(obj)返回obj的类型,boolean number string function array date regexp object error
$.globalEval(code)在全局作用域下执行code,eval(code) 在当前作用域下执行
$.nodeName(elem,name)判断elem的节点名称是否为name,返回值为boolean,elem为dom元素
$.each(obj,callbak) 循环obj,callback中返回false,打破循环
$.trim(str)去掉str两边空格,参数为 null 和 undefined 时返回 “”
$.inArray(elem,arr,index)从index的位置开始检索arr中包含elem元素的位置,找到第一个后返回位置,没有找到返回-1,默认从0开始查找
$.merge(first,second)合并两个数组,第一个数组后追加第二个数组,第一个数组发生改变
$.grep(elems,callback,flg)查找满足过滤功能数组元素。原始数组不受影响。flg默认为false
$.map(obj,callback)循环obj,返回由callback返回值组成的数组
$.now()返回当前系统时间的毫秒数。
$.proxy(function,context)接受一个函数,然后返回一个新函数,并且这个新函数始终保持了特定的上下文语境。 
  

 

 

 

 

 

            

    

  

        

      

         

 

 

 

          

    

    

   

    

           

    

 

 


 

以下方法在源码中发现,注释显示为jquery内部使用,目前还不明确用途,等待深入学习

$.noop()

$.support

$.camelCase