jquery原理簡析
function $(selector,context);
function jquery(selector,context)
if(typeof selector =="function")
}
我們想要$('selector')
時就獲得乙個元素,且裡面有一些方法。
這些方法要繫結在原型prototype
上。
所以jquery必須是個建構函式
var $ = new fucntion jquery(){}
假設裡面有個方法是繫結元素的,叫做init,我們首先要在prototype繫結這個方法。
jquery.prototype.init = function(){}
當然jquery裡還有其他例項方法,比如each方法,那我們需要這樣寫。
jquery.prototype = ,
each: function(callback, args) {},
其他方法...
}
然後我們需要返回這個元素,因此返回的是init方法的執行結果.
var $ = new fucntion jquery()
但是我們返回的是init創造的dom,因此我們也要在init
裡獲取到jquery的原型上的方法,因此最好的辦法是把init函式也當成乙個建構函式。裡面的prototype就繫結jquery的原型方法。
因此
init.prototype = jquery.prototype
即
jquery.prototype.init.prototype = jquery.fn;
這樣我們就不需要new jquery,而直接通過new init()方法,就可以獲取到jquery上的原型方法。
所以
var $ = fucntion jquery(selector)
由於prototype太長,也不利於理解,我們用乙個fn表示這些所有的方法,也就是這個原型。
因此
jquery.fn.init.prototype = jquery.fn;
所以就變成下面這樣了。
var $ = fucntion jquery()
jquery.prototype = //建構函式,
其他方法
}jquery.fn = jquery.prototype
jquery.fn.init.prototype = jquery.fn;
$(selector)
jquery的巧妙之處在於,在原型方法jquery.fn.init
上,返回原建構函式的原型方法jquery.prototype
,也就是jquery.fn.init.prototype =jquery.fn
這樣做的好處乙個是可以獲取到jquery繫結的原型方法,乙個是不需要new,因為我們new init
時,init的原型就可以拿到jquery的原型了。
Android handler(原理簡析)
顯示到我們的螢幕上。此時乙個android新手上來說,那簡單啊,直接寫上網路請求獲取就行了,獲取到了再將直接放到對應的控制項上就行了啊,這有什麼值得思考的啊?修改ui只能在主 ui 執行緒中 1.我們把需要傳送的訊息打包成message物件 2.handler將打包好的message物件傳送給mes...
https原理簡析
https的工作原理 https在傳輸資料之前需要客戶端 瀏覽器 與服務端 之間進行一次握手,在握手過程中將確立雙方加密傳輸資料的密碼資訊。tls ssl協議不僅僅是一套加密傳輸的協議,更是一件經過藝術家精心設計的藝術品,tls ssl中使用了非對稱加密,對稱加密以及hash演算法。握手過程的簡單描...
編譯原理中要點簡析
一 文法 0型文法又叫短文法,其能力相當於圖靈機。滿足a b中a包含非終結符 1型文法又叫上下文有關文法,其能力相當於線性有界自動機。滿足 b a a 空除外 2型文法又叫上下文無關文法,其能力相當於下推自動機。滿足1型文法的同時要求a是非終結符 對比0型文法 3型文法又叫正規文法,其能力相當於有限...