亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > JavaScript > 正文

JQuery中extend的用法實例分析

2019-11-20 13:12:20
字體:
來源:轉載
供稿:網友

本文實例講述了JQuery中extend的用法。分享給大家供大家參考。具體分析如下:

extend()函數是jQuery的基礎函數之一,作用是擴展現有的對象。extend是我們在寫插件的過程中常用的方法,該方法有一些重載原型。$.extend(prop) 用于擴展jQuery對象,可以用于把函數添加到jQuery名稱空間中。

一、jQuery.extend函數的源碼

jQuery.extend = jQuery.fn.extend = function() {  var options, name, src, copy, copyIsArray, clone,    target = arguments[0] || {},//參數目標對象    i = 1,    length = arguments.length,//參數長度    deep = false;//是否為深度復制  // Handle a deep copy situation  //如果為深度復制,則目標對象和原對象游標值i,以及深度值都進行更新  if ( typeof target === "boolean" ) {    deep = target;    target = arguments[1] || {};    // skip the boolean and the target    i = 2;  }  // Handle case when target is a string or something (possible in deep copy)  //當目標對象的值類型錯誤,則重置為{}  if ( typeof target !== "object" && !jQuery.isFunction(target) ) {    target = {};  }  // extend jQuery itself if only one argument is passed  //當參數值長度為1的情況下,目標對象就為jQuery自身  if ( length === i ) {    target = this;    --i;  }  for ( ; i < length; i++ ) {    // Only deal with non-null/undefined values    if ( (options = arguments[ i ]) != null ) {//忽略空對象      // Extend the base object      for ( name in options ) {        src = target[ name ];        copy = options[ name ];//存儲對象的值        // Prevent never-ending loop        if ( target === copy ) {          continue;        }        // Recurse if we're merging plain objects or arrays         //深度復制只有屬性深度多于倆層的對象關系的結構的,如{a:{s:21,age:11}}或{a:['s'=>21,'age'=>11]}        if ( deep && copy && ( jQuery.isPlainObject(copy) || (copyIsArray = jQuery.isArray(copy)) ) ) {          if ( copyIsArray ) {//如果是數組對象            copyIsArray = false;            clone = src && jQuery.isArray(src) ? src : [];          } else {//普通對象            clone = src && jQuery.isPlainObject(src) ? src : {};          }          // Never move original objects, clone them          // 調用自身進行遞歸復制          target[ name ] = jQuery.extend( deep, clone, copy );        // Don't bring in undefined values        } else if ( copy !== undefined ) {//非深度CP直接覆蓋目標屬性          target[ name ] = copy;        }      }    }  }  // Return the modified object  return target;};

二、Jquery的擴展方法原型是:
  
1、extend(dest,src1,src2,src3...);

它的含義是將src1,src2,src3...合并到dest中,返回值為合并后的dest,由此可以看出該方法合并后,是修改了dest的結構的。如果想要得到合并的結果卻又不想修改dest的結構,可以如下使用:
 
2、var newSrc=$.extend({},src1,src2,src3...)//也就是將"{}"作為dest參數。

這樣就可以將src1,src2,src3...進行合并,然后將合并結果返回給newSrc了。

如下例:

var result=$.extend({},{name:"Tom",age:21},{name:"Jerry",sex:"Boy"})

那么合并后的結果

result={name:"Jerry",age:21,sex:"Boy"}

也就是說后面的參數如果和前面的參數存在相同的名稱,那么后面的會覆蓋前面的參數值。
 
3、extend(boolean,dest,src1,src2,src3...)

第一個參數boolean代表是否進行深度拷貝,其余參數和前面介紹的一致
例如:

var result=$.extend( true, {}, { name: "John", location: {city: "Boston",county:"USA"} }, { last: "Resig", location: {state: "MA",county:"China"} } );

我們可以看出src1中嵌套子對象location:{city:"Boston"},src2中也嵌套子對象location:{state:"MA"},第一個深度拷貝參數為true,那么合并后的結果就是:

result={name:"John",last:"Resig",location:{city:"Boston",state:"MA",county:"China"}}

也就是說它會將src中的嵌套子對象也進行合并,而如果第一個參數boolean為false,我們看看合并的結果是什么,如下:

var result=$.extend( false, {}, { name: "John", location:{city: "Boston",county:"USA"} }, { last: "Resig", location: {state: "MA",county:"China"} } );

那么合并后的結果就是:

result={name:"John",last:"Resig",location:{state:"MA",county:"China"}}

二、Jquery中extend方法省略dest參數的情況
 
上述的extend方法原型中的dest參數是可以省略的,如果省略了,則該方法就只能有一個src參數,而且是將該src合并到調用extend方法的對象中去,如:

1、$.extend(src)

該方法就是將src合并到jquery的全局對象中去,如:

$.extend({ hello:function(){alert('hello');}});

就是將hello方法合并到jquery的全局對象中。
 
2、$.fn.extend(src)

該方法將src合并到jquery的實例對象中去,如:

$.fn.extend({ hello:function(){alert('hello');}});

就是將hello方法合并到jquery的實例對象中。
 
三、下面例舉幾個常用的擴展實例:

$.extend({net:{}});

這是在jquery全局對象中擴展一個net命名空間。

$.extend($.net,{  hello:function(){alert('hello');}})

這是將hello方法擴展到之前擴展的Jquery的net命名空間中去。

希望本文所述對大家的jQuery程序設計有所幫助。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
高清欧美一区二区三区| 韩国v欧美v日本v亚洲| 亚洲激情在线观看视频免费| 欧美精品在线观看| 亚洲国产另类久久精品| 98精品国产自产在线观看| 久久精品国产亚洲一区二区| 国自产精品手机在线观看视频| 欧美另类暴力丝袜| 日韩av电影在线播放| 国色天香2019中文字幕在线观看| 欧美一区二区大胆人体摄影专业网站| www.精品av.com| 亚洲天堂日韩电影| 欧美制服第一页| 97在线免费观看| 91国语精品自产拍在线观看性色| 国产三级精品网站| 成人精品久久久| 亚洲大胆美女视频| 亚洲自拍偷拍区| 日韩不卡在线观看| 青草青草久热精品视频在线观看| 国产精品国产亚洲伊人久久| 2019亚洲日韩新视频| 亚洲国产精品资源| 欧美色道久久88综合亚洲精品| 亚洲欧美国产va在线影院| 91国语精品自产拍在线观看性色| 成人性生交大片免费看视频直播| 中文字幕在线亚洲| 久久人人爽人人| 成人午夜小视频| 日韩最新免费不卡| 欧美大秀在线观看| 国产精品中文在线| 欧美另类老女人| 欧美人与物videos| 国产精品专区第二| 福利视频一区二区| 成人疯狂猛交xxx| 成人淫片在线看| 神马久久桃色视频| 51视频国产精品一区二区| 国产精品三级久久久久久电影| 日韩av手机在线| 91麻豆国产语对白在线观看| 日本乱人伦a精品| 亚洲欧洲在线播放| 人人做人人澡人人爽欧美| 日韩欧美精品在线观看| 美女av一区二区三区| 亚洲日韩中文字幕| 久久久女女女女999久久| 宅男66日本亚洲欧美视频| 国产v综合v亚洲欧美久久| 久久天天躁夜夜躁狠狠躁2022| 欧美超级免费视 在线| 亚洲精品中文字幕女同| 成人乱人伦精品视频在线观看| 色悠悠国产精品| 欧美日韩国产色| 欧美激情手机在线视频| 欧美在线观看日本一区| 亚洲精品影视在线观看| 亚洲视频国产视频| 国产欧美久久久久久| 91久久综合亚洲鲁鲁五月天| 色狠狠av一区二区三区香蕉蜜桃| 欧美精品做受xxx性少妇| 久久精品亚洲94久久精品| 亚洲黄页视频免费观看| 欧美日韩中文字幕综合视频| 欧美国产一区二区三区| 国产欧美日韩精品在线观看| 国产视频亚洲视频| 日韩av大片免费看| www.亚洲一二| 一本一本久久a久久精品综合小说| 久久久久久久一区二区三区| 91国内揄拍国内精品对白| 欧美电影电视剧在线观看| 中文字幕不卡av| 国产一区二区三区18| 日本伊人精品一区二区三区介绍| 96pao国产成视频永久免费| 欧美性xxxxxx| 国产精品久久久久久久久影视| 性欧美长视频免费观看不卡| 欧美一级在线亚洲天堂| 亚洲成人av在线| 国产在线视频一区| 欧美激情久久久| 国产精品久久久久久亚洲影视| 国产成人亚洲综合91精品| 91亚洲人电影| 国产成人精品av在线| 日韩精品在线影院| 91麻豆国产语对白在线观看| 亚洲欧美精品在线| 国内精品久久久久伊人av| 清纯唯美亚洲激情| 欧美国产欧美亚洲国产日韩mv天天看完整| 久久久在线视频| 91久久国产精品91久久性色| 国产免费一区视频观看免费| 久久精品一本久久99精品| 国产成人中文字幕| 国产精品欧美激情在线播放| 粉嫩老牛aⅴ一区二区三区| 国产成人在线一区| 黄色成人在线播放| 国产精品久久久久久久久借妻| 亚洲精品97久久| 亚洲第一天堂无码专区| 欧美国产日韩一区| 中文字幕av一区二区三区谷原希美| 国产精品老女人精品视频| 精品高清美女精品国产区| 欧美精品生活片| 欧美大尺度在线观看| 性色av一区二区三区红粉影视| 日韩欧美999| 国产精品揄拍一区二区| 欧美日韩另类在线| 一个人看的www久久| 日韩精品日韩在线观看| 国产精品99久久久久久白浆小说| 日韩av电影在线播放| 亚洲人成电影网站| 成人精品一区二区三区电影免费| 91高清在线免费观看| 97色在线观看免费视频| 精品国产电影一区| 亚洲精品videossex少妇| 97在线视频观看| www.日韩免费| 亚洲专区中文字幕| 久久久久久亚洲| 中文字幕精品视频| 亚洲精品欧美极品| 国产一区私人高清影院| 中文字幕亚洲综合久久筱田步美| 国产免费成人av| 疯狂蹂躏欧美一区二区精品| 精品视频在线观看日韩| 日韩a**站在线观看| 日本视频久久久| 日韩精品高清视频| 亚洲精品国产拍免费91在线| 97精品视频在线| 国产免费观看久久黄| 久久久最新网址| 欧美老妇交乱视频| 成人情趣片在线观看免费| 亚洲一区美女视频在线观看免费| 亚洲国产成人精品久久久国产成人一区| 成人写真视频福利网| 国产亚洲激情视频在线| 97久久伊人激情网| 2020久久国产精品| 一区二区欧美亚洲| 亚洲深夜福利在线| 成人网在线免费观看|