Javascript 物件(object)合併

2021-09-07 13:53:20 字數 1311 閱讀 9792

物件的合併

需求:設有物件 o1 ,o2,需要得到物件 o3

var o1 = , o2 = ;//則

var o3 =

方法1:使用jquery的extend方法

**方法定義**:jquery.extend([deep], target, object1, [objectn])

> 用乙個或多個其他物件來擴充套件乙個物件,返回被擴充套件的物件。

> 如果不指定target,則給jquery命名空間本身進行擴充套件。這有助於外掛程式作者為jquery增加新方法。 如果第乙個引數設定為true,則jquery返回乙個深層次的副本,遞迴地複製找到的任何物件(遞迴合併)。否則的話,副本會與原物件共享結構。 未定義的屬性將不會被複製,然而從物件的原型繼承的屬性將會被複製。

o3 = $.extend(o1, o2)  //

合併 o1 和 o2, 將結果返回給 o3. 注意: 此時,o1 == o3! 即 o1 被修改//或

o3 = $.extend({}, o1, o2) //

合併 o1 和 o2, 將結果返回給 o3. 注意: 此時,o1 != o3! 即 o1 沒有被修改

方法2:用 object.assign(); :

var o1 = ;

var o2 = ;

var o3 = ;

var obj =object.assign(o1, o2, o3);

console.log(obj);

//

, 注意目標物件自身也會改變。

console.info(o2); //

console.info(o3); //

和$.extend相同,將物件合併到第乙個物件中。

方法3:遍歷賦值法

**邏輯:

迴圈物件n中的每乙個對應屬性。

確認物件n中存在該屬性

確認物件o中不存在該屬性

var extend=function

(o,n)

};

類似於直接賦值增加屬性:

o3=o1;

o3['b']='b';

//o3 =;

注:typescript中目前就是使用的這種方式。

更多:js獲取當前檔案所在的資料夾全路徑

js escape()、encodeuri()和encodeuricomponent()的區別

js判斷是否載入完成三種方式

js 異常 obj物件

obj物件 object物件屬性 construction 返回行物件的建立函式。prototype 將新的物件方法新增到物件中。object物件方法 tostring 返回字串表述形式。eval 計算或者執行指定的的表示式。valueof 返回制制定物件的原始值。由於obj是所有函式的父類,所以任...

反射方式 Map轉換obj物件

最近接到的需求是這樣的,要求我根據乙個關聯id獲取不同資料表的資料,並返回list集合。我接到這個需求最初想法就是通過mabatis首先獲取list 返回值集合 然後在根據表名稱就可以得知實體類物件了,再通過反射的方式進行將map轉換為obj。可能有人問我為什麼這麼轉,因為已經獲取到了map集合了。...

Javascript定義物件

1.原始方式 建立多個物件缺陷 var car new object car.name asdf car.method1 function 2.工廠模式,可傳遞引數 方法建立多個缺陷 function createcar return tempobj var carobj createcar 3.工...