jQuery原始碼學習之常用方法解析

2021-09-02 03:08:18 字數 1783 閱讀 8878

1.將其他型別轉換為陣列,一般想到的是toarray,我們看一下toarray的原始碼實現

toarray: function()

2.當沒有傳遞引數時get將返回乙個陣列,陣列中包括所有元素。

$div.get(0); //等同於$("div:first");

$div.get().length === $("div").length; //true

3.jquery提供的slice和eq方法都是支援負數引數的。

slice(begin[,end])是從0開始索引的,包括begin不包括end。沒有傳遞第二個引數預設返回從第乙個引數(包括第乙個引數所在的元素)到最後乙個元素。

index is 0 or -3

index is 1 or -2

index is 2 or -1

$("p").slice(-1);//last

$("p").slice(1,2);//只返回index是1的p

$("p").slice(1);//返回index 〉=1的所有p

//可能看的還不夠明了,直接上字串好了

var str="string";

str.slice(1,2);//"t"

str.slice(1);//"tring"

ruby也有slice方法,但是ruby的slice方法的兩個引數的意義是不同的,第二個引數是擷取字串的長度。當沒有給出第二個引數,預設是擷取乙個字元。

irb(main):001:0> "string".slice(1,2)

=> "tr"

irb(main):002:0> "string".slice(1,2)

=> "t"

irb(main):003:0>

4.isfunction

//if $.type == "function",isfounction() is true;others are false

var function_demo = function();

var not_function_demo = ;

var $elem = $("div");

$.isfunction(function_demo);//true

$.type(function_demo); //"function"

$.isfunction(not_function_demo);//false

$.type(not_function_demo); //"array"

$.isfunction($elem);//false

$.type($elem); //"object"

5.isarray

var arr_demo = ;

$.type(arr_demo); //"array"

$.isarray(arr_demo); //true

6.end()

(1)不接受任何引數

(2)end()將鏈的源頭返回,達到find( ".bar" )是在$( "ul.first" )中查詢

jQuery原始碼學習之extend

extend用於合併物件,可選擇是否深複製。使用時,第乙個引數為合併後的物件。如果要進行深拷貝,則引數1為true,引數2為要合併的目標物件。儘管jquery官方文件明確指出第乙個引數是false的呼叫情況並不支援,但是這個版本的原始碼中,判斷第乙個引數的型別雖有限定是boolean型別,但卻未對其...

jQuery原始碼學習

jquery框架學習 1 定義變數和函式 2 給jq物件,新增一些方法和屬性 3 extend jq的繼承方法 4 jq.extend 擴充套件jq的一些工具方法 5 jq複雜的選擇功能 6 callbacks 回函物件,函式的統一管理 7 deferred 延遲物件,對非同步的乙個統一管理 8 s...

jQuery原始碼學習筆記

整個jquery是乙個自呼叫的匿名函式 1 function global,factory 9return factory w 10 11 else 14 typeof window undefined window this,function window,noglobal 自呼叫函式大家都不陌生...