JQuery源码解析-定义变量和函数,赋值JQuery

这个模块中,主要定义变量

rootjQuery:定义Jq的根对象,为了可压缩

readyList :

core_strundefined:将typeof undefined的值"undefined"赋值给这个变量,因为在IE9及以下对于xmlNode.method是不等于undefined的,只有比较"undefined"字符串的时候才会相等,考虑兼容性

将一些对象赋值给变量

location = window.location,
document = window.document,
docElem = document.documentElement

这是为了防止方法外部对$和jQuery赋值,将这些值保存在内部的变量里,不至于丢失。

_jQuery = window.jQuery,

_$ = window.$,

class2type:这个变量保存的一些js的类型例如:[{"Object String","string"}]等,以后做类型判断,用到这个数组

core_deletedIds:在2.0一下的版本,对于data不是做面向对象处理的,在2.0以上才是,所以用到这个,在2.0以上,这个变量没什么太大的用处。

core_version:版本号。

下面是对将一下数组方法赋值到这些变量里,core_deletedIds这个变量也就是在这用到了, 其他地方没再用到这个变量。

core_concat = core_deletedIds.concat,
core_push = core_deletedIds.push,
core_slice = core_deletedIds.slice,
core_indexOf = core_deletedIds.indexOf,
core_toString = class2type.toString,
core_hasOwn = class2type.hasOwnProperty,
core_trim = core_version.trim,

初始化JQ的方法。

jQuery = function( selector, context ) {
// The jQuery object is actually just the init constructor 'enhanced'
return new jQuery.fn.init( selector, context, rootjQuery );
},

下面是一些正则,用到了在说明。

core_pnum = /[+-]?(?:d*.|)d+(?:[eE][+-]?d+|)/.source,

core_rnotwhite = /S+/g,

rquickExpr = /^(?:s*(<[wW]+>)[^>]*|#([w-]*))$/,

rsingleTag = /^<(w+)s*/?>(?:</1>|)$/,

rmsPrefix = /^-ms-/,
rdashAlpha = /-([da-z])/gi,

下面这个方法是用于进行驼峰转换的,例如 case-int 可以转换为caseInt这种操作。

fcamelCase = function( all, letter ) {
return letter.toUpperCase();
},

这个方法暂时还没明白。。后续补上

// The ready event handler and self cleanup method
completed = function() {
document.removeEventListener( "DOMContentLoaded", completed, false );
window.removeEventListener( "load", completed, false );
jQuery.ready();
};

原文地址:https://www.cnblogs.com/y8932809/p/5832500.html