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*(<[\w\W]+>)[^>]*|#([\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();
};

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM