jquery原始碼分析(2)(2 0版本)

2021-09-27 06:49:26 字數 1546 閱讀 9906

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...