jquery源码-jquery变量定义

[b][size=medium]源码 15~93行,jquery变量定义[/size][/b]

var
// A central reference to the root jQuery(document)
rootjQuery,//定义jquery根节点

// The deferred used on DOM ready
readyList,//Deferred 的存储用到

// Use the correct document accordingly with window argument (sandbox)
//下面的几段都是把JS本身的对象和方法做了本地的定义,这么做能减少每次调用全局的对象/方法,把当做juquery域内对象或方法,能提升性能,这是框架常用的写法
document = window.document,
location = window.location,
navigator = window.navigator,

// Map over jQuery in case of overwrite
_jQuery = window.jQuery,

// Map over the $ in case of overwrite
_$ = window.$,

// Save a reference to some core methods
core_push = Array.prototype.push,
core_slice = Array.prototype.slice,
core_indexOf = Array.prototype.indexOf,
core_toString = Object.prototype.toString,
core_hasOwn = Object.prototype.hasOwnProperty,
core_trim = String.prototype.trim,

// Define a local copy of jQuery(定义一份本地的jquery的拷贝)
jQuery = function( selector, context ) {
// The jQuery object is actually just the init constructor 'enhanced'
return new jQuery.fn.init( selector, context, rootjQuery );
},

// Used for matching numbers(匹配各类型的数字表示法)正/负/整型/浮点/科学计数法
core_pnum = /[\-+]?(?:\d*\.|)\d+(?:[eE][\-+]?\d+|)/.source,

// Used for detecting and trimming whitespace
core_rnotwhite = /\S/,//匹配非空白字符
core_rspace = /\s+/,//匹配多个空白字符

// Make sure we trim BOM and NBSP (here's looking at you, Safari 5.0 and IE)
rtrim = /^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,

// A simple way to check for HTML strings
// Prioritize #id over <tag> to avoid XSS via location.hash (#9521)
//匹配含html标签字符串或#id形式的字符串
rquickExpr = /^(?:[^#<]*(<[\w\W]+>)[^>]*$|#([\w\-]*)$)/,

// Match a standalone tag (匹配标签符) 如 <a></a> 或 <br />
rsingleTag = /^<(\w+)\s*\/?>(?:<\/\1>|)$/,

// JSON RegExp
rvalidchars = /^[\],:{}\s]*$/,//匹配JSON字符串所包含的有效字符
rvalidbraces = /(?:^|:|,)(?:\s*\[)+/g,
rvalidescape = /\\(?:["\\\/bfnrt]|u[\da-fA-F]{4})/g,//匹配回车换行换页制表符或中文字符
rvalidtokens = /"[^"\\\r\n]*"|true|false|null|-?(?:\d\d*\.|)\d+(?:[eE][\-+]?\d+|)/g,//匹配非回车换行的字符串/bool/null/数值

// Matches dashed string for camelizing
rmsPrefix = /^-ms-/,
rdashAlpha = /-([\da-z])/gi,

// Used by jQuery.camelCase as callback to replace()
//转换为大写,这里有个疑问是为什么加了一个不需要的参数all?
fcamelCase = function( all, letter ) {
return ( letter + "" ).toUpperCase();
},

// The ready event handler and self cleanup method
//定义浏览器docuemnt的加载完成事件快捷方式
DOMContentLoaded = function() {
if ( document.addEventListener ) {
document.removeEventListener( "DOMContentLoaded", DOMContentLoaded, false );
jQuery.ready();
} else if ( document.readyState === "complete" ) {
// we're here because readyState === "complete" in oldIE
// which is good enough for us to call the dom ready!
document.detachEvent( "onreadystatechange", DOMContentLoaded );
jQuery.ready();
}
},

// [[Class]] -> type pairs
class2type = {};
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值