Copie JavaScript

Crystal Iwwish 2021-11-25 18:52:57
copie javascript

Copie peu profonde:Copier uniquement la méthode de copie de la couche externe

Copie profonde:La façon dont toutes les couches sont copiées

Observez le code suivant,Nous pouvons voir,Données apparaissant comme paires de valeurs clés,Parmi eux,uname,age,sexEst le type de base,Effectuer un transfert de valeur,Etcolor,messageEst le type de référence,Effectuer le transfert d'adresse

let obj = {

uname : 'CAT',
age : 1,
sex : 'Mâle',
color : ['red', 'black', 'yellow', 'pink'],
message : {

index : 1,
score : 99
}
}

Copie peu profonde:

let obj = {

uname : 'CAT',
age : 1,
sex : 'Mâle',
color : ['red', 'black', 'yellow', 'pink'],
message : {

index : 1,
score : 99
}
}
let newObj = {
};
Object.assign(newObj, obj); //Copie
obj.message.score = 10;//Les nouveaux changent aussi
console.log(obj, newObj);

Une copie peu profonde ne peut copier que le type de données de base,Un peu plus compliqué,Parce que la valeur est passée,Modifier l'originalobj Valeurs de types complexes ,newObj La valeur de change aussi , Impossible de faire une copie

Copie profonde:

let obj = {

uname : 'CAT',
age : 1,
sex : 'Mâle',
color : ['red', 'black', 'yellow', 'pink'],
message : {

index : 1,
score : 99
}
}
let newObj = {
};
function Copy (newObj, obj) {

for ( let key in obj ) {

if ( obj[key] instanceof Array ) {
// obj[key] Est un tableau
// obj[key]Est un tableau,Traversée
newObj[key] = [];
Copy(newObj[key], obj[key]); //Récursion
} else if ( obj[key] instanceof Object ) {
 // obj[key]C'est l'objet
// obj[key]C'est l'objet,Traversée
newObj[key] = {
};
Copy(newObj[key], obj[key]);
} else {

newObj[key] = obj[key];
}
}
}
Copy(newObj, obj);
obj.message.score = 123;
console.log( obj, newObj );

La copie profonde est un type de données qui peut être copié

版权声明
本文为[Crystal Iwwish]所创,转载请带上原文链接,感谢
https://javamana.com/2021/11/20211125184339656T.html

  1. hive学习笔记之二:复杂数据类型,五分钟搞懂MySQL主从复制原理
  2. hive学习笔记之一:基本数据类型,java实现分页技术详解
  3. HDU-3038-How Many Answers Are Wrong【 带权并查集 】题解,java实战项目论坛
  4. HDU 1078 FatMouse and Cheese(记忆化搜索,DP,rocketmq教程教程
  5. [Java multithreading] static synchronized method and synchronized (class) code block
  6. [Java multithreading] synchronized statement block
  7. [Java multithreading] synchronized synchronization method
  8. [Java multithreading] thread priority and guard thread
  9. [Java multithreading] stop the thread
  10. Several methods of [Java multithreading] thread
  11. [Java multithreading] Java multithreading skills
  12. Structure des données Python: tableaux, listes, piles, files d'attente et implémentations
  13. Re - Learning Swagger 2.0 and Swagger 3.0 of Spring Series
  14. Error editing HTML5 using webstorm
  15. 【Spring】mybatis-spring
  16. JavaScript post request returned an exception, possibly Cross - Domain request
  17. 图解 Kafka 线程模型及其设计缺陷
  18. Springboot + mybatis Plus + springsecurity + JWT implements user stateless request authentication (front and back end separation)
  19. SQL injection and XSS attack of springboot security vulnerability
  20. Docker employee readme: Why did docker lose to kubernetes?
  21. 19 high force linux commands, hurry to use them!
  22. Add data files for Oracle tablespaces or temporary tablespaces
  23. Intellij IDEA神器居然还有这些小技巧,mysql集群搭建视频
  24. IntelliJ IDEA(2019)之Web项目创建,掌门一对一java面试题
  25. InnoDB(2,如何访问Redis中的海量数据
  26. InheritableThreadLocal使用详解,java多线程面试题及答案整理
  27. How does Oracle modify the data type of a column
  28. Oracle 12C 12.1.0.1.0 management control file official document translation instructions
  29. Oracle 10g 10.2.0.1 in Oracle Linux 5.4 32bit RAC installation manual (Yimo Xiyang)
  30. Oracle 12C in Oracle Linux 6.5 64bit installation manual
  31. 一天十道Java面试题----第一天(面向对象-------》ArrayList和LinkedList)
  32. Schéma du modèle de fil Kafka et de ses défauts de conception
  33. Starting and shutting down Oracle RAC database cluster
  34. CRS_ Oracle CRS stack is already configured and will be running under init(1M)
  35. Common skills of Oracle stored procedure
  36. Check the number of CPUs, core books and threads of the Linux system
  37. jQuery-实例方法
  38. Oracle de duplicated data
  39. jQuery-dom和jQuery,入口函数(基本知识)
  40. Oracle creates unique constraints on columns that already have duplicate data
  41. JavaScript-拷贝
  42. JavaScript-this指向问题
  43.  There is ^ [[a garbled code problem in the up and down keys in Oracle sqlplus
  44. JavaScript-封装与继承(两种)
  45. JavaScript-包装类型
  46. JavaScript-传值(引用类型,基本类型)
  47. JavaScript-面向对象(构造函数,实例成员,静态成员)
  48. JavaScript-解构赋值
  49. JavaScript-箭头函数
  50. JavaScript-参数
  51. JavaScript-预解析(变量提升)
  52. JavaScript-闭包closure
  53. JavaScript-声明变量的关键字
  54. JavaScript - mot - clé pour déclarer une variable
  55. Fermeture de fermeture JavaScript
  56. JavaScript Pre - parse (promotion des variables)
  57. Paramètres JavaScript
  58. Common annotations in springboot
  59. JavaScript - orienté objet (constructeur, membre d'instance, membre statique)
  60. JavaScript value Transfer (reference type, Basic type)