jQuery的繼承extend的方法實現的簡單理解

2021-07-24 09:49:03 字數 1571 閱讀 9598

這個版本是2.1版本首先上**

jquery.extend = jquery.fn.extend = function() ,

i = 1,

length = arguments.length,

deep = false;

// handle a deep copy situation 處理乙個深拷貝的情況

if ( typeof target === "boolean" ) ;

i++;

} // handle case when target is a string or something (possible in deep copy) 當目標是乙個字串或東西(可能在深拷貝)的情況下

if ( typeof target !== "object" && !jquery.isfunction(target) ) ;

} // extend jquery itself if only one argument is passed 如果只有乙個引數是通過擴充套件jquery本身

if ( i === length )

for ( ; i < length; i++ )

// recurse if we're merging plain objects or arrays 遞迴如果我們合併普通物件或陣列

if ( deep && copy && ( jquery.isplainobject(copy)/*是否是乙個純粹的物件*/ || (copyisarray = jquery.isarray(copy))/*或者是乙個陣列*/ ) ) else ;

}// never move original objects, clone them 永遠不要移動原始物件,轉殖他們

target[ name ] = jquery.extend( deep, clone, copy );//遞迴轉殖

// don't bring in undefined values 不要帶來不確定的值

} else if ( copy !== undefined )

}} }

// return the modified object 返回修改後的物件

return target; //最後返回轉殖物件

};

jquery的**確實嚴謹性相當的高,判斷的相當清楚,最重要的就是for迴圈內的函式,首先判斷了是否為空,然後for in 迴圈處理對每乙個元素處理,判斷元素的情況,進行遞迴呼叫。

本人不善於表達,方法裡面解釋都已經寫上了

從**上可以看出,extend的使用方法不止一種

首先介紹一下最簡單的extend(object)方法,裡面傳入乙個物件,是對jquery或者jquery.fn方法的擴充套件。

其次,有兩個或者n個物件的情況下,$.extend(object,object1,object2,......),這種情況是對第乙個物件的擴充套件,也是淺拷貝。

介紹最後一種,就是傳的第乙個值為boolean型別的值,true為深拷貝,false為淺拷貝,傳入的只有乙個物件的情況下就是對jquery本身的擴充套件,如果大於乙個物件就是對第乙個物件的擴充套件,返回值將是擴充套件完的物件。

extend模板繼承

extend模板繼承 建立模板檔案mo.html en utf 8 title title page header page body menu page body content page footer style head div div.page 3 tab 快速建立標籤框架 page hea...

jQuery的extend的用法

jquery 的 api 手冊中,extend 方法掛載在 jquery 和 jquery.fn 兩個不同的物件上,但在 jquery 內部 實現的是相同的,只是功能各不相同。先看看官方給出的解釋 雖然官方對 jquery.extend 的擴充套件方法功能隻字未提,但是它也同樣具有擴充套件 jque...

JQuery的extend擴充套件方法

一 jquery的擴充套件方法原型是 extend dest,src1,src2,src3.它的含義是將src1,src2,src3.合併到dest中,返回值為合併後的dest,由此可以看出該方法合併後,是修改了dest的結構的。如果想要得到合併的結果卻又不想修改dest的結構,可以如下使用 var...