Estoy trabajando en un juego js e intento clonar un objeto, pero sigo teniendo este error:
this[i].clone is not a function
este es mi codigo:
Object.prototype.clone = function() { var i, newObj = (this instanceof Array) ? [] : {}; for (i in this) { if (i === 'clone') { continue; } if (this[i] && typeof this[i] === "object") { newObj[i] = this[i].clone(); } else { newObj[i] = this[i]; } } return newObj; };
Traté de reemplazar 'clon' con esta solución:
JSON.parse(JSON.stringify(object))
no funcionó. ¿alguna ayuda por favor?
parece como funciona
Object.prototype.clone = function() { var i, newObj = (this instanceof Array) ? [] : {}; for (i in this) { if (i === 'clone') { continue; } if (this[i] && typeof this[i] === "object") { newObj[i] = this[i].clone(); } else { newObj[i] = this[i]; } } return newObj; }; var person = { name: 'John', address: { city: 'New York' } }; var clonedPerson = person.clone(); person.address.city = 'Buenos Aires'; console.log(person.address.city); console.log(clonedPerson.address.city);
¿Cómo es tu llamada?