JavaScript no proporciona directamente métodos de clonos de objetos. Por lo tanto, cuando el objeto B se cambia en el siguiente código, el objeto A se cambia.
a = {k1: 1, k2: 2, k3: 3};
b = a;
B.K2 = 4;
Si solo desea cambiar B y mantener una constante, debe copiar objeto a.
Use jQuery para copiar objetos
Cuando se puede usar jQuery, el método de extensión de JQuery se puede usar para implementar la copia de objetos.
a = {k1: 1, k2: 2, k3: 3};
b = {};
$ .extend (b, a);
Personalizar el método Clone () para implementar la copia de objetos
El siguiente método es la idea básica de la copia de objetos.
Objeto.prototype.clone = function () {var copy = (esta instancia de matriz)? []: {}; para (attr en esto) {if (! obj.hasownproperty (attr)) continuar; copiar [attr] = (typeof este [i] == "objeto")? Obj [attr] .clone (): obj [attr]; } return Copy;}; a = {k1: 1, k2: 2, k3: 3}; b = a.clone ();Los siguientes ejemplos son más completos y son adecuados para la copia profunda de la mayoría de los objetos.
function clone (obj) {// manejar los 3 tipos simples, y nulo o indefinido if (null == obj || "objeto"! = typeof obj) return obj; // Manejar la fecha if (obj instanciaf fecha) {var copy = new Date (); copy.settime (obj.gettime ()); devolver copia; } // manejar la matriz if (obj instanciaf array) {var copy = []; for (var i = 0, var len = obj.length; i <len; ++ i) {copy [i] = clone (obj [i]); } return Copy; } // manejar objeto if (obj instanciaf objeto) {var copy = {}; for (var attr en obj) {if (obj.hasownproperty (attr)) copia [attr] = clone (obj [attr]); } return Copy; } arrojar un nuevo error ("¡No se puede copiar obj! Su tipo no es compatible");}La comprensión en profundidad del artículo anterior de la copia de objetos (clon de objetos) en JavaScript es todo el contenido que comparto con usted. Espero que pueda darle una referencia y espero que pueda apoyar más a Wulin.com.