jQuery的原理
阿新 • • 發佈:2018-12-12
jQuery的原理
jq最核心的是 $ ,它是一個函式。
函式中返回一個自定義的jq物件,它是一個類。
在這個類的原型下面有許多jq自定義的方法,如on,css。。。
每次呼叫 $ 都會返回一個新的jq物件,
同時在 $ 函式中,根據傳入引數的型別,如(#div1, .div2, span等),函式或者字串,
把選中的元素存在陣列中,遍歷這個陣列,去除每個元素進行dom操作。
jQuery可以鏈式操作,是因為,在每一個方法中,都會在最後 return this
返回了當前 $函式中的jq物件,所以就能繼續鏈式操作了。
舉例(虛擬碼):
function $(selector, context){
return new Jquery(selector,context);
};
function Jquery(selector,context){
this.element = [];//用來儲存傳進來的引數
if(typeof selector =="string"){
//說明傳進來的是 #div1 .box span 等
if(selector.charAt(0)=="#")
if(selector.charAt(0)==".")
//擷取字串,獲取dom物件,儲存在陣列中
}
if(typeof selector =="function" ){
//說明傳進來的是文件就緒函式
addEvent(document,"DOMContentLoaded",selector,false)
}
}
jQuery物件、js物件相互轉換
1)jq->js
$("#div1")[0]
$("#div1").get(0)
2)js->jq
$(this)