Der Inhalt dieses Artikels ist eine kurze Einführung und Implementierungsmethode für flaches Kopieren und tiefes Kopieren. Ich hoffe, dass er für Sie hilfreich ist.
Erste Aussage: Welcher Datentyp kann kopiert werden? Zweifellos Arrays und Objekte [Array&Object]
Flache Kopie:
* --- Methode zum Kopieren von Daten (betrifft die Originaldaten durch flache Kopie)
* 1. Direkt in die Variable kopieren // Flache Kopie
* 2. Object.assign() // Flache Kopie des Objekts
* 3. Array.prototype.concat() // Flache Kopie des Arrays
* 4. Array.prototype.slice() //Array flache Kopie
Tiefe Kopie:
Methode 1:
//无嵌套对象或者数组浅拷贝 function simpleDeepClone(target){ return JSON.parse(JSON.stringify(target)); }
Methode 2:
//嵌套对象或者数组深拷贝 //定义检测数据类型的函数 function checkType(target) { return Object.prototype.toString.call(target).slice(8, -1); } //实现深度拷贝 function clone(target) { //判断拷贝的数据类型 let result, targetType = checkType(target); if (targetType === 'Object') { result = {}; } else if (targetType === 'Array') { result = []; } else { return target; } //遍历目标数据 for (let i in target) { //获取数据对象的每一个值 let value = target[i]; //判断目标结构里面是否存在对象/数组 if (checkType(value) === 'Object' || checkType(value) === 'Array') { //继续遍历 result[i] = clone(value); } else { //获取到的value值是基本的数据类型或者函数 result[i] = value; } } return result; }
Verwandte Empfehlungen:
jQuerys $.extend Shallow Copy- und Deep Copy-Beispielanalyse
JS-Implementierung von Deep- und Shallow-Copy-Methoden
Das obige ist der detaillierte Inhalt vonEine kurze Einführung in Shallow Copy und Deep Copy in js und wie man sie implementiert. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!