Javascript 對(duì)象(object)合并操作實(shí)例分析
本文實(shí)例講述了Javascript 對(duì)象(object)合并操作。分享給大家供大家參考,具體如下:
對(duì)象的合并
需求:設(shè)有對(duì)象 o1 ,o2,需要得到對(duì)象 o3
var o1 = { a:'a' }, o2 = { b:'b' };
// 則
var o3 = { a:'a', b:'b' }
方法1:使用JQuery的extend方法
- **方法定義**:jQuery.extend([deep], target, object1, [objectN])
- > 用一個(gè)或多個(gè)其他對(duì)象來(lái)擴(kuò)展一個(gè)對(duì)象,返回被擴(kuò)展的對(duì)象。
- > 如果不指定target,則給jQuery命名空間本身進(jìn)行擴(kuò)展。這有助于插件作者為jQuery增加新方法。 如果第一個(gè)參數(shù)設(shè)置為true,則jQuery返回一個(gè)深層次的副本,遞歸地復(fù)制找到的任何對(duì)象(遞歸合并)。否則的話,副本會(huì)與原對(duì)象共享結(jié)構(gòu)。 未定義的屬性將不會(huì)被復(fù)制,然而從對(duì)象的原型繼承的屬性將會(huì)被復(fù)制。
o3 = $.extend(o1, o2) // 合并 o1 和 o2, 將結(jié)果返回給 o3. 注意: 此時(shí),o1 == o3! 即 o1 被修改
// 或
o3 = $.extend({}, o1, o2) // 合并 o1 和 o2, 將結(jié)果返回給 o3. 注意: 此時(shí),o1 != o3! 即 o1 沒(méi)有被修改
方法2:用 Object.assign(); 網(wǎng)上找的例子:
var o1 = { a: 1 };
var o2 = { b: 2 };
var o3 = { c: 3 };
var obj = Object.assign(o1, o2, o3);
console.log(obj); // { a: 1, b: 2, c: 3 }
console.log(o1); // { a: 1, b: 2, c: 3 }, 注意目標(biāo)對(duì)象自身也會(huì)改變。
方法3:遍歷賦值法
代碼邏輯:
- 循環(huán)對(duì)象n中的每一個(gè)對(duì)應(yīng)屬性。
- 確認(rèn)對(duì)象n中存在該屬性
- 確認(rèn)對(duì)象o中不存在該屬性
var extend=function(o,n){
for (var p in n){
if(n.hasOwnProperty(p) && (!o.hasOwnProperty(p) ))
o[p]=n[p];
}
};
類(lèi)似于直接賦值增加屬性:
o3=o1;
o3['b']='b';
// o3 ={ o1:'a', o2:'b' };
感興趣的朋友可以使用在線HTML/CSS/JavaScript代碼運(yùn)行工具:http://tools.jb51.net/code/HtmlJsRun測(cè)試上述代碼運(yùn)行效果。
更多關(guān)于JavaScript相關(guān)內(nèi)容感興趣的讀者可查看本站專(zhuān)題:《javascript面向?qū)ο笕腴T(mén)教程》、《JavaScript錯(cuò)誤與調(diào)試技巧總結(jié)》、《JavaScript數(shù)據(jù)結(jié)構(gòu)與算法技巧總結(jié)》、《JavaScript遍歷算法與技巧總結(jié)》及《JavaScript數(shù)學(xué)運(yùn)算用法總結(jié)》
希望本文所述對(duì)大家JavaScript程序設(shè)計(jì)有所幫助。
相關(guān)文章
director.js實(shí)現(xiàn)前端路由使用實(shí)例
這篇文章主要介紹了director.js實(shí)現(xiàn)前端路由使用實(shí)例,director.js是最純粹的路由注冊(cè)/解析器,它在不刷新頁(yè)面的情況下,利用“#”符號(hào)組織不同的URL路徑,需要的朋友可以參考下2015-02-02
VsCode插件自動(dòng)生成注釋插件koroFileHeader使用教程
這篇文章主要介紹了VsCode插件自動(dòng)生成注釋插件koroFileHeader使用教程,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2023-01-01
javascript 判斷字符串是否包含某字符串及indexOf使用示例
js javascript 判斷字符串是否包含某字符串,String對(duì)象中查找子字符及indexOf具體使用,感興趣的朋友可以參考下2013-10-10
Javascript自定義函數(shù)判斷網(wǎng)站訪問(wèn)類(lèi)型是PC還是移動(dòng)終端
如果,能夠判斷出訪問(wèn)Web網(wǎng)頁(yè)的類(lèi)型(PC還是移動(dòng)終端)。就可以解決許多絢麗多彩的 Flash效果出不來(lái)的問(wèn)題2014-01-01
JS獲取指定時(shí)間的時(shí)間戳的方法匯總(最新整理收藏版)
在JavaScript中,可以使用Date.parse()或new Date()來(lái)獲取指定時(shí)間的時(shí)間戳,本文給大家分享JS獲取指定時(shí)間的時(shí)間戳的方法,感興趣的朋友一起看看吧2024-01-01
Next項(xiàng)目路徑添加指定的訪問(wèn)前綴方法詳解
這篇文章主要介紹了Next項(xiàng)目路徑添加指定的訪問(wèn)前綴方法詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-03-03
Javascript表達(dá)式中連續(xù)的 && 和 || 之賦值區(qū)別
了區(qū)分賦值表達(dá)式中出現(xiàn)的連續(xù)的 ‘&&’和 ‘||’的不同的賦值含義,做了一個(gè)小測(cè)試.2010-10-10

