Red de conocimiento informático - Conocimiento sistemático - Tres formas de implementar una copia profunda

Tres formas de implementar una copia profunda

Las tres formas de implementar la copia profunda son las siguientes:

1. Utilice un método recursivo para implementar la copia profunda.

//Utilice la recursividad para implementar la copia profunda de matrices y objetos functiondeepClone1(obj){

//Determine si el objeto copiado es una matriz o un objeto. Si es una matriz, la matriz se copia; si es un objeto, se copia el objeto.

varobjClone=Matriz, isArray(obj)? []:{};

//La copia profunda no puede estar vacía y es un objeto o

if(obj & typeofobj = = = " object "){

for (keyinobj){

if(obj, hasOwnProperty(key)){

if(obj[key]& & typeofobj[key]= = = " objeto " ) {

obj clone[key]= deep clone 1(obj[key]);

2. Implementar copia profunda a través del objeto JSON.

// Copie profundamente el objeto de matriz a través del objeto integrado jsON de JS.

funcióndeepClone2(obj){

var_obj=JSON, stringify(obj),

objClone=JSON, parse(_ obj);

returnobjClone

Implementación}Varios problemas en la copia profunda de objetos JSON

3. Implementar la copia profunda a través del método de extensión de jQuery.

vararray=[1, 2, 3, 4];

varnewArray = $, extend(true, [], matriz); p>

En la programación orientada a objetos de C++, los constructores inicializan los objetos. El constructor puede abrir espacio de memoria para el objeto en la memoria de la computadora y también proporcionar valores iniciales para los miembros de datos del objeto. El constructor es una función miembro especial con el mismo nombre que la clase y sin valor de retorno. Cada vez que se crea un objeto (incluida la creación dinámica de un objeto usando new), el sistema compilador llama automáticamente al constructor.

Los constructores se pueden sobrecargar con parámetros predeterminados como funciones generales y funciones de miembros de clase fuera de la clase. La sobrecarga de constructores proporciona varios medios flexibles para la generación de objetos.

Los constructores se dividen en constructores predeterminados y constructores definidos por el usuario. Cuando el programador no define un constructor, el sistema proporciona un constructor predeterminado sin parámetros. Si el usuario define un constructor, el constructor predeterminado proporcionado por el compilador desaparece automáticamente.