referencia JavaScrip- profundidad copia tipo de datos

Simple asignación de tipos de datos:

var str1='haha'
var str2;
str2=str1;
str1='xixi';
console.log(str1);
console.log(str2);

Aquí está la salida de la consola Aquí Insertar imagen Descripción
está claro, a continuación, asignar el valor de str2 str1, si hacemos un cambio en el valor de cadena1, no tiene ningún efecto sobre el valor de str2, como se realiza aquí es el valor asignado a la str2 str1 variables .
A continuación nos fijamos en el tipo de asignación de datos de referencia:

  var arr1=[1,2,3,4,5,6,7];
  var arr2;
  arr2=arr1;
  arr1[2]=9;
  console.log(arr1);
  console.log(arr2);

Echemos un vistazo a los resultados de salida de la consola aquí es
Aquí Insertar imagen Descripción
donde cambiamos a un conjunto de elementos de datos, el resultado de los contenidos de las dos matrices se cambian. Como se realiza aquí arr2 = arr1, se le asigna a la dirección de memoria arr1 arr2, dos variables se almacenan en la misma dirección de memoria, es decir, sus dos operaciones es la misma matriz. Aquí la dirección de memoria de una variable de nuestras misiones directamente a otra variable que se almacena en una copia superficial.
Si no desea utilizar un conjunto de dos variables, podemos variables de referencia sólo datos numéricos ceder, en lugar de dirección de esta asignación que se llama una copia profunda

        var arr3=['把','糖','都','给','你','吃','嘻']
        var arr4=[];
        arr3.forEach(function(val,key){
            // arr4[key]=val;
            arr4.push(val);
        })
        arr3[6]='啵';
        console.log(arr3);
        console.log(arr4);

Nos recorrer la matriz, la matriz de datos celulares tomados de uno en uno se asigna a otra matriz de unidades de datos que corresponde a (o añadido a otra matriz), entonces la asignación de valores para lograr la operación, nos fijamos en los resultados de:
Aquí Insertar imagen Descripción
Ampliar cambia el valor arr3 no afecta arr4, hemos logrado una copia profunda de la arr3.

Publicado 21 artículos originales · ganado elogios 3 · Vistas 322

Supongo que te gusta

Origin blog.csdn.net/qq_44531034/article/details/105013610
Recomendado
Clasificación