jquery源码学习(一)core部分
这一部分是jquery的核心
- jquery的构造器
- 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
郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。