摘要:文檔上的解釋將一個(gè)或者多個(gè)對象擴(kuò)展一個(gè)新對象,返回一個(gè)新的對象是否深度克隆對象,將要擴(kuò)展到的新對象,待合并到新對象的第一個(gè)對象,待合并到新對象的第個(gè)對象例將合并到作為一個(gè)新對象,此時(shí)輸出的所輸出內(nèi)容將是兩個(gè)對象屬性集合,我們之所以這么做,可
Jquery extend()
API文檔上的解釋:將一個(gè)或者多個(gè)對象擴(kuò)展一個(gè)新對象,返回一個(gè)新的對象
$.extend([deep],target,obj1,objN)
deep:是否深度克隆對象,
target:將要擴(kuò)展到的新對象,
obj1:待合并到新對象的第一個(gè)對象,
objN:待合并到新對象的第N個(gè)對象.
例:$.extend(obj1,obj2)//將obj2合并到obj1作為一個(gè)新對象,
var obj1 = {
name:"sunwukong",
age:18
}
var obj2 = {
price:50, weight:100
}
$.extend(obj1,obj2);
此時(shí)輸出的obj1 所輸出內(nèi)容將是兩個(gè)對象屬性集合,
我們之所以這么做,可以將obj1看做一個(gè)普通的人,而添加到obj2之后可以新添加功能,有了新的功能以后能跑能跳
注意:如果此時(shí)有相同屬性名,obj1中的相同屬性名的屬性值將被obj2所覆蓋
(function($){ $.extend({ speak:function(){ alert("how are you!"); } }); })(jQuery);
此時(shí)我們可以直接調(diào)用$.speak這個(gè)方法
擴(kuò)展到這個(gè)方法只跟$有關(guān),跟具體實(shí)例化對象是沒有關(guān)系的
把對象掛載到Jquery的prototype屬性,來擴(kuò)展新的jquery方法
Jquery.fn.extend = jquery.prototype ={
speak:function(){
consolor.log("aa")
}}
調(diào)用:
$("#btn").speak()//此時(shí)我們的fn可以代表的是我們當(dāng)前這個(gè)對象
這種可以用于我們公共的js方法的調(diào)用
alert($.fn.jquery );獲取當(dāng)前jquery的版本號
1. 兩者的調(diào)用方式
$.extend(deep,target,obj1,obj2)
一般由傳入全局的函數(shù)來調(diào)用,主要用于擴(kuò)展個(gè)全局函數(shù),如:$.init(),$.ajax();
jQuery.fn.extend(),
一般由具體的實(shí)例對象來調(diào)用,可以用來拓展個(gè)選擇器,例如$.fn.each();
2. 兩者的主要功能不同
$.extend(deep,target,obj1,obj2)一般用于給jquery自身添加方法
jQuery.fn.extend(),
3. 開發(fā)中可能會遇到的bug
bug之$.extend(deep,target,obj1,obj2)
var obj1 = {
name:"sunwukong",
age:18,
banlance:{big:false,nianji:12,pal:"ad"}
}
var obj2 = { price:50, banlance:{big:true,pal:"ad"} }
var obj3 = {}
$.extend(obj3,obj1,obj2)
obj3{name:"sunwukong",age:18, price:50,banlance:{big:true,pal:"ad"}}
此時(shí)相同屬性第二個(gè)將第一個(gè)完全覆蓋
var obj3 = {}
$.extend(true,obj3,obj1,obj2)
obj3{name:"sunwukong",age:18, price:50,banlance:{big:true,nianji:12,pal:"ad"}}
此時(shí)調(diào)用深克隆可以將對應(yīng)的數(shù)據(jù)進(jìn)行obj2中沒有的obj1屬性也進(jìn)行添加
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/95733.html
摘要:構(gòu)成類數(shù)組對象,引入,并使其自增版本信息模擬數(shù)組,即這里構(gòu)成一個(gè)類數(shù)組對象由于這里把作為構(gòu)造函數(shù)調(diào)用,得到一個(gè)對象,所以我們把作為的原型。 本文簡單實(shí)現(xiàn)jQuery框架,深入理解javascript對象。本文的對照版本是jQuery-1.2.6.js 本文注重jquery結(jié)構(gòu)設(shè)計(jì)思路,并不側(cè)重具體功能的實(shí)現(xiàn)以及兼容性和安全性的部分。 首先建立基本框架如下: (function(wind...
摘要:方法作用是,用一個(gè)或多個(gè)其他對象來擴(kuò)展一個(gè)對象。通常使用格式如下上述代碼含義是將合并到中,并返回。如果該方法里面兩個(gè)參數(shù)都是數(shù)組呢控制臺輸出的為如果方法省略了參數(shù),則表示將合并到全局對象中去。 jQuery.extend()方法作用是,用一個(gè)或多個(gè)其他對象來擴(kuò)展一個(gè)對象。 通常使用格式如下:jQuery.extend(dest,src1,src2,src3...);上述代碼含義是:將s...
摘要:方法作用是,用一個(gè)或多個(gè)其他對象來擴(kuò)展一個(gè)對象。通常使用格式如下上述代碼含義是將合并到中,并返回。如果該方法里面兩個(gè)參數(shù)都是數(shù)組呢控制臺輸出的為如果方法省略了參數(shù),則表示將合并到全局對象中去。 jQuery.extend()方法作用是,用一個(gè)或多個(gè)其他對象來擴(kuò)展一個(gè)對象。 通常使用格式如下:jQuery.extend(dest,src1,src2,src3...);上述代碼含義是:將s...
摘要:方法作用是,用一個(gè)或多個(gè)其他對象來擴(kuò)展一個(gè)對象。通常使用格式如下上述代碼含義是將合并到中,并返回。如果該方法里面兩個(gè)參數(shù)都是數(shù)組呢控制臺輸出的為如果方法省略了參數(shù),則表示將合并到全局對象中去。 jQuery.extend()方法作用是,用一個(gè)或多個(gè)其他對象來擴(kuò)展一個(gè)對象。 通常使用格式如下:jQuery.extend(dest,src1,src2,src3...);上述代碼含義是:將s...
摘要:到目前為止,的貢獻(xiàn)者團(tuán)隊(duì)共名成員,多條,可想而知,是一個(gè)多么龐大的項(xiàng)目。參考源碼分析整體架構(gòu)源碼解析讀書筆記第二章構(gòu)造對象函數(shù)詳解本文在上的源碼地址,歡迎來。 歡迎來我的專欄查看系列文章。 決定你走多遠(yuǎn)的是基礎(chǔ),jQuery 源碼分析,向長者膜拜! 我雖然接觸 jQuery 很久了,但也只是局限于表面使用的層次,碰到一些問題,找到 jQuery 的解決辦法,然后使用。顯然,這種做法的...
閱讀 3007·2023-04-26 02:29
閱讀 616·2019-08-30 15:54
閱讀 1703·2019-08-29 13:13
閱讀 631·2019-08-28 17:51
閱讀 2753·2019-08-26 13:58
閱讀 1560·2019-08-26 13:27
閱讀 2844·2019-08-26 11:39
閱讀 3473·2019-08-26 10:46