extend 實現物件合併

2021-10-23 18:30:08 字數 2285 閱讀 1775

概述

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

引數引數

說明deep

如果為 true,則深拷貝,預設淺拷貝。

target

待修改的物件

object1

待合併到第乙個物件的物件

objectn

待合併到第乙個物件的物件

示例

目的: 合併 obj1 和 obj2,修改並返回 obj1。

**:

let obj1 =

let obj2 =

console.

log(

'合併前'

,obj1);$.

extend

(true

, obj1, obj2)

console.

log(

'合併後'

,obj1)

;

結果:

};把$.extend([deep], target, obj1, [objn])情況單獨提取出來。

實現思路:迴圈待合併物件,把裡面的屬性新增到目標物件下。

$.

extend

=function()

// target = true

i =1,

length = arguments.length,

// 3 引數長度

deep =

false

// 是否深拷貝,預設為false

// 是否是合併物件的情況if(

typeof target ===

'boolean'

)// target = obj1; 待修改物件

i =2// 待合併物件在arguments的位置,從0開始算

}// i = 2; length = 3

for(

; i < length; i++

)for

(name in options)

// 是否是物件 是否是陣列

if(deep && copy &&

(jquery.

isplainobject

(copy)

||(copyisarray = jquery.

isarray

(copy)))

)else

} target[name]

= jquery.

extend

(deep, clone, copy)

// 遞迴實現深拷貝

}else

if(copy !== undefined)}}

}return target;

// obj1

}

– 若有錯誤的地方,歡迎指正 –

json物件合併extend的使用

jquery的extend擴充套件方法 jquery的擴充套件方法extend是我們在寫外掛程式的過程中常用的方法,該方法有一些過載原型,在此,我們一起去了解了解。一 jquery的擴充套件方法原型是 extend dest,src1,src2,src3.它的含義是將src1,src2,src3.合...

extend深度合併陣列問題

合併陣列問題 var a0 var a1 var a2 extend true,a0,a1,a2 結果是 而我期望的結果是 希望將陣列長度也覆蓋掉。雖然使用 extend false,a0,a1,a2 方式可以實現上面情況,但使用false的話,其他物件屬性就不能合併了。我的解決方案 對陣列屬性特殊...

實現物件合併功能

前言 jquery 中的 extend 是經常使用到工具函式,多用於合併引數 物件 具體用法在這裡不過多贅述,可通過傳參控制合併過程中是否使用深度拷貝 而es2015中新增的 object.assign 方法,也可以實現物件的合併,不過合併過程中使用的是淺拷貝 本文參考了jquery的extend方...