copia de referencia de tipo de datos de poca profundidad y distinción copia profunda

Hola a todos, estoy aquí hoy para hablar de nuestras diferencias en tonos de copias de un tipo de referencia.

copia superficial
de asignación de dirección de memoria asignación directa, el mismo contenido después de la asignación de las dos variables, dos variables se almacenan en la misma dirección de memoria, una operación a otra cambiará.
arr1 se almacena en una memoria de direcciones matriz de variables
var arr1 = [1,2,3,4,5];

El arr1 dirección de memoria almacenada, asignado a arr2 es decir, dos variables se almacenan en la misma memoria de direcciones
var arr2 = arr1;

operación arr1, matriz, arr2 también se cambia
porque arr1 y arr2 es, mientras que el almacenamiento de los mismos datos, la misma operación es también una matriz
Del mismo modo, arr2 es, una matriz operación, cambiará arr1
arr1 [0] = 'Beijing';

console.log (arr2);
La salida es Beijing, 2,3,4,5
copia profunda
bucle a través, para obtener un tipo de datos de referencia, los datos almacenados en cada uno asignado a una nueva variable, después de la asignación de dos variables, sin cualquier relación.
var arr3 = [ 'Beijing', 'Shanghai', 'Guangzhou', 'Chongqing', 'Tianjin'];

Loop a través, para obtener todos los valores de datos en arr3, asignados a la nueva matriz
arr4 var = [];

A través del bucle, el índice de generación de ARR3 todos los subíndices
para (var i = 0;. I <= 1-arr3.length; i ++) {
ARR3 [I] es la obtención de datos almacenados en la ARR3
arr4.push () en la ARR3 datos arr3 [i], escrito en los arr4
arr4.push (ARR3 [I]);
}

console.log (arr4);

arr3 [0] = 'Wuhan';

console.log (arr3, arr4);
salida es: arr3: Wuhan, Shanghai, Guangzhou, Chongqing, Tianjin.
arr4: Beijing, Shanghai, Guangzhou, Chongqing, Tianjin.

 

Supongo que te gusta

Origin www.cnblogs.com/rpxx/p/12549163.html
Recomendado
Clasificación