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

 

jquery源码学习(一)core部分,古老的榕树,5-wow.com

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。