js difiere en copia superficial e implementaciones de la copia profunda

Los tipos de datos básicos pueden ser entendidas como Chaozuo Ye, los tipos de datos de referencia pueden ser entendidas como escribir dos nombres en un trabajo de esta. Copia profunda y copia superficial es para tipos de datos de referencia (comprensión personal)

El artículo es de   https://www.jianshu.com/p/a8dc699e9534

1. Asignación y superficial copiar Cuál es la diferencia?

  obj1 datos en bruto

  datos de asignación obj2

  obj3 datos de copia superficial

 

Él continuó diciendo copia superficial.

¿Por qué cambiar la asignación obj3 resultante obj2 objeto y poco profunda copia obtenida en Idioma ) de la segunda y tercera valor de los valores de atributo ( Idioma es una matriz, que es un tipo de referencia ). Los resultados son de salida, se pueden ver, ya sea modificar las asignaciones y el objeto resultante obj2 obtuvo copia superficial obj3 de los datos originales cambiará.

[Copia copia superficial porque sólo un atributo de objeto, un tipo de referencia no incluye objetos de datos que hay dentro. Por lo que habrá cambios obj3 poco profunda copia obtenida en los tipos de referencia, los datos originales serán cambiados. ] Sentencia es fácil de entender:

copia superficial es una copia de una capa, además de una copia del tipo de referencia de objeto, (el comienzo de los otros mencionados tipos de datos básicos ) se transmiten directamente al valor, que tiene su propio espacio de memoria

copia profunda: copiar el objeto A al objeto B, el objeto B incluye sub dentro,
copia superficial: copiar el objeto B con el objeto A, pero no incluye la sub-objetos dentro de B

 

copia superficial

Tarea 1. desestructuración

 

 

 

 

método 2.ES6 de Object.assign

 

Object.assign es ES6 función nueva. método Object.assign () puede ser cualquiera de una pluralidad de objeto de origen en sí pueden enumerarse copia atributo al objeto de destino, el objeto de destino y luego vuelve. Sin embargo Object.assign () se realiza copia superficial, el atributo de copia es una referencia a un objeto, en vez del objeto mismo.

 

Object.assign (objetivo, ... Fuentes)
parámetros:

 

Objetivo: El objeto de destino.
fuentes: cualquiera de la pluralidad de objetos de origen.
Devuelve: se devolverá el objeto de destino.

 

 

 

copia profunda

Después de leer copia superficial comprensión, se puede saber: que es una copia profunda del objeto y todos los objetos secundarios copia de un objeto.
El siguiente cambio es explorar cómo un objeto es una copia profunda?

1, con JSON.stringify el objeto en una cadena, la cadena JSON.parse entonces transformado en un nuevo objeto (usando JSON).

 

Lo malo: que abandonará el constructor del objeto. Después de que es una copia profunda, no importa lo que el sujeto del constructor original, después de una copia profunda se convertirá en objeto. Así que sólo es adecuado para objetos planos Número, cadena, booleano, matriz de

2, copia recursiva

 O su uso en la ES6 Object.create método ()







 

Supongo que te gusta

Origin www.cnblogs.com/ymm-notes-blog/p/12668444.html
Recomendado
Clasificación