1.引數為什麼傳window和undefined:
(function(window,undefined))(window)
1.(1)根據作用域鏈的原理,傳入window引數之後,能提高查詢速度。(2).便於壓縮。
2.傳入undefined,防止undefined在外部被修改。
2.變數rootjquery,core_strundefined
866行:rootjquery = jquery(document);
30行: core_strundefined = typeof undefined,
window.aundefined
typeof window.a』undefined』
在ie678xml節點下判斷window.a==undefined是會出錯的。
3.$(),jquery()呼叫方法的原理:
呼叫建構函式的方法:
function test()
test.prototype.init = funciton()
test.prototype.add = function()
var test1 = new test()
test1.init()
test1.add()
使用建構函式的呼叫形式每次都要建立乙個建構函式的例項。
jquery中:
function jquery()
jquery.prototype.init = funciton(){}
jquery.prototype.add = function(){}
呼叫jquery時返回的是jquery.prototype.init建構函式的例項,但是諸如jquery.prototype.add此類方法又怎麼拿得到呢?
在283行:jquery.fn.init.prototype = jquery.fn;
在96行:jquery.fn = jquery.prototype
這樣jquery的原型就賦給了jquery.fn.init的原型,呼叫jquery時,return出去的建構函式例項就可以引用jquery原型上的方法和屬性。
8752行:window.jquery = window.$ = jquery;//直接通過$()就可以呼叫jquery方法了。
(function(window,undefined)
jquery.prototype.init = function(select)
jquery.prototype.test = function()
jquery.prototype.init.prototype = jquery.prototype
window.jquery = window.$ = jquery
})(window)
*$('dv').onclick = function()*
這樣就可以實現一些簡單的封裝了。 jQuery原始碼分析
工具 版本說明 版本號備註 jquery 2.1.1 sublime 3jquery function selector,context jquery.fn jquery.prototype 快速匹配正則 不加g 不光匹配整體項還會匹配到子項 rquickexpr s w w w init jque...
jQuery原始碼分析
一 jquery如何做到不汙染變數名並暴露出 供使用者使用 jquery將變數和 寫進立即執行函式,通過函式來包裹所有的變數和方法,再在這個立即執行函式上將 jquery方法繫結到window上,就可以讓使用者使用到jq方法了。二 jquery是如何做到 jquery 的?function wind...
jQuery 原始碼分析
這篇文章可以說是讀這篇文章這篇文章後的總結。jquery最基本的構成結構 var jquery window.jquery window.function a,b jquery.fn jquery.prototype age function jquery.fn.init.prototype jqu...