Foros del Web » Programando para Internet » Javascript »

Borrar objeto javascript

Estas en el tema de Borrar objeto javascript en el foro de Javascript en Foros del Web. Buenas, Queria saber como se elimina un objeto. Estuve buscando informacion por internet y es con delete pero lo probe y con delete lo unico ...
  #1 (permalink)  
Antiguo 19/02/2011, 09:41
 
Fecha de Ingreso: noviembre-2007
Mensajes: 471
Antigüedad: 16 años, 6 meses
Puntos: 2
Borrar objeto javascript

Buenas,

Queria saber como se elimina un objeto. Estuve buscando informacion por internet y es con delete pero lo probe y con delete lo unico que hago es borrar los metodos o propiedades instanciadas. A mi me interesa el objeto total.

Saludos
  #2 (permalink)  
Antiguo 19/02/2011, 13:28
Avatar de zerokilled
Javascripter
 
Fecha de Ingreso: abril-2009
Ubicación: Isla del Encanto, La Borinqueña [+>==]
Mensajes: 8.050
Antigüedad: 15 años
Puntos: 1485
Respuesta: Borrar objeto javascript

buenas...

muestranos como lo estas haciendo porque tengo mis dudas. tambien depende del tipo de objeto.

__________________
la maldad es una virtud humana,
y la espiritualidad es la lucha del hombre contra su maldad.
  #3 (permalink)  
Antiguo 19/02/2011, 15:29
 
Fecha de Ingreso: noviembre-2007
Mensajes: 471
Antigüedad: 16 años, 6 meses
Puntos: 2
Respuesta: Borrar objeto javascript

Cita:
Iniciado por zerokilled Ver Mensaje
buenas...

muestranos como lo estas haciendo porque tengo mis dudas. tambien depende del tipo de objeto.


si quiero borrar las propiedades pongo.

delete objeto.nombre;
delete objeto.edad;

y me las borra pero si quiero borrar todo el objeto con las propiedades no me hace nada

delete objeto;

lo compruebo mediante un alert para ver si existe o no.

Saludos
  #4 (permalink)  
Antiguo 19/02/2011, 15:46
Avatar de zerokilled
Javascripter
 
Fecha de Ingreso: abril-2009
Ubicación: Isla del Encanto, La Borinqueña [+>==]
Mensajes: 8.050
Antigüedad: 15 años
Puntos: 1485
Respuesta: Borrar objeto javascript

pues no sabria que decirte, solo que a mi me funciona.

Código:
// ejemplo 1;
obj = {prop:true, method:function(){}};
delete obj.prop;
delete obj.method;
console.log(obj);
delete obj;
console.log(obj);

// ejemplo 2;
obj = {prop:true, method:function(){}};
delete obj;
console.log(obj);
otra forma que puedes probar a borrar es asignandole un valor distinto, por ejemplo null o undefined.

Código:
obj = {prop:true, method:function(){}};
obj = null;
obj = undefined;
sin embargo, en este ultimo modelo, el identificador no deja de existir en la tabla del garbage collector. o sea, que para javascript, la variable aun existe solo que con un valor distinto. con delete se borra esa referencia de la tabla y es como si nunca estuviera definida la variable. es importante saber esto por si realizaras alguna comprobacion de dicha variable o propiedad. por ejemplo...
Código:
obj = {prop:true, method:function(){}};
delete obj.prop;
obj.method = undefined;
console.log("prop" in obj); // devuelve false;
console.log("method" in obj); // devuelve true;
__________________
la maldad es una virtud humana,
y la espiritualidad es la lucha del hombre contra su maldad.

Última edición por zerokilled; 19/02/2011 a las 15:53
  #5 (permalink)  
Antiguo 20/02/2011, 14:08
 
Fecha de Ingreso: noviembre-2007
Mensajes: 471
Antigüedad: 16 años, 6 meses
Puntos: 2
Respuesta: Borrar objeto javascript

Cita:
Iniciado por zerokilled Ver Mensaje
pues no sabria que decirte, solo que a mi me funciona.

Código:
// ejemplo 1;
obj = {prop:true, method:function(){}};
delete obj.prop;
delete obj.method;
console.log(obj);
delete obj;
console.log(obj);

// ejemplo 2;
obj = {prop:true, method:function(){}};
delete obj;
console.log(obj);
otra forma que puedes probar a borrar es asignandole un valor distinto, por ejemplo null o undefined.

Código:
obj = {prop:true, method:function(){}};
obj = null;
obj = undefined;
sin embargo, en este ultimo modelo, el identificador no deja de existir en la tabla del garbage collector. o sea, que para javascript, la variable aun existe solo que con un valor distinto. con delete se borra esa referencia de la tabla y es como si nunca estuviera definida la variable. es importante saber esto por si realizaras alguna comprobacion de dicha variable o propiedad. por ejemplo...
Código:
obj = {prop:true, method:function(){}};
delete obj.prop;
obj.method = undefined;
console.log("prop" in obj); // devuelve false;
console.log("method" in obj); // devuelve true;
Buenas,

Intente copiar un poco tu ejemplo como lo tenias para borrar objetos y lo puse asi

for (key in objeto){


delete objeto[key];
alert(objeto[key]);
}
delete objeto;
alert(objeto);

ahora en este alert ( alert(objeto[key]); ) me sale undefined y el ultimo alert que es del objeto me sale como que existe. me pone [object, Object] osea que continua existiendo.

A nadie se le ocurre como hacer para eliminarlo???
  #6 (permalink)  
Antiguo 20/02/2011, 14:24
Avatar de zerokilled
Javascripter
 
Fecha de Ingreso: abril-2009
Ubicación: Isla del Encanto, La Borinqueña [+>==]
Mensajes: 8.050
Antigüedad: 15 años
Puntos: 1485
Respuesta: Borrar objeto javascript

tendrias que poner un codigo mas alla de ser teorico, o sea, tu codigo real. si ese es tu codigo original, pues no se que decirte... como antes indique, a mi me funciona. ¿en que navegador estas probando?
__________________
la maldad es una virtud humana,
y la espiritualidad es la lucha del hombre contra su maldad.
  #7 (permalink)  
Antiguo 20/02/2011, 14:53
 
Fecha de Ingreso: noviembre-2007
Mensajes: 471
Antigüedad: 16 años, 6 meses
Puntos: 2
Respuesta: Borrar objeto javascript

Cita:
Iniciado por zerokilled Ver Mensaje
tendrias que poner un codigo mas alla de ser teorico, o sea, tu codigo real. si ese es tu codigo original, pues no se que decirte... como antes indique, a mi me funciona. ¿en que navegador estas probando?
te dejo el codigo de como elimino el objeto.

Código Javascript:
Ver original
  1. <input type="button" value="boton" onclick="crear('michu')">
  2.         <input type="button" value="summar"  id="edad">
  3. <input type="button" value="summar"  id="borrar">  
  4.         <script type="text/javascript">
  5.            
  6. var Gato = function (color, edad) {
  7.    
  8.     this.color = color;
  9.     this.edad = edad;
  10.     this.mostrar = mostrar;
  11. this.cambiare = cambiare;
  12. this.actualizar = actualizar;
  13.  
  14. }
  15.  
  16. function crear(objeto, nuevaedad){
  17.    
  18.     //objeto es el nombre del gato
  19.     var color= "blanco";
  20.     var edad= 10;
  21.  
  22.     obj = {
  23.         tipo: objeto,
  24.         color: color,
  25.         edad: edad,
  26.          a : function () {
  27.     alert ('Mi nombre es ' + this[1] );
  28.   }
  29. }
  30. obj.a ();
  31. obj.color = "rojo";
  32. mostrar(obj);
  33. borrar(obj);
  34. /*
  35.     objeto = new Gato(color, edad);
  36.     objeto.mostrar(objeto);
  37.     objeto.cambiare(objeto);
  38.     objeto.actualizar();
  39.    
  40.     */
  41.    
  42. }
  43.  
  44. function mostrar(objeto){
  45.     //alert(this.color);
  46.                 var $p = $('<p>');
  47.                 var id = "textogato";
  48.                 var $objeto = $p.attr("id", id);
  49.                 var $texto = objeto.color;
  50.                 var $objeto = $p.text($texto); 
  51.                 $objeto.css("display", "inline");
  52.                 $objeto.css("background", "red");
  53.                
  54.                 $objeto.css("font-size", "20px");
  55.                 $objeto.css("color", "blue");
  56.                        
  57.                 $objeto.appendTo('body');
  58.  
  59.            
  60.  
  61. }
  62.  
  63. function borrar(obj){
  64.    
  65. $('#borrar').click(function() {
  66.        
  67.        
  68.  
  69.             id = "textogato";
  70.             //eliminamos el elemento de la web
  71.             $('#' + id).remove();
  72.            
  73.            
  74.    
  75.  
  76.                        
  77.  
  78.                
  79.             var miArray = new Array()
  80.             //eleminamos las propiedades y funciones
  81.             for (key in obj){  
  82.                
  83.                
  84.                 delete obj[key];
  85.                 alert(obj[key]);
  86.             }
  87.             delete obj;
  88.             alert(obj);
  89.  
  90.            
  91.        
  92.  
  93.     });
  94.    
  95. }
  96.  
  97.  
  98.  
  99.            
  100.         </script>

Saludos
  #8 (permalink)  
Antiguo 20/02/2011, 16:15
Avatar de zerokilled
Javascripter
 
Fecha de Ingreso: abril-2009
Ubicación: Isla del Encanto, La Borinqueña [+>==]
Mensajes: 8.050
Antigüedad: 15 años
Puntos: 1485
Respuesta: Borrar objeto javascript

me imaginaba que el asunto iba por un closure, lo que dezconocia era que no se puede borrar un simbolo (variable o funcion) que reside en un scope distinto al lugar donde se invoca delete. en el siguiente ejemplo, en la consola debes ver que imprime: Object, false, Object. el false se refiere a que la operacion delete private no fue exitoso. conclusion, no puedes borrar una variable cuando se crea un closure. tendras que utilizar la alternativa que antes indique, asignale a la variable null o undefined. en realidad no estarias borrandolo, pero si deberia liberar suficiente memoria ocupada comparado con null o undefined.

Código:
function closure(){
var private = {prop: true, method: function(){}};
return function(){
console.log(private);
console.log(delete private);
console.log(private);
};
}

closure()();
__________________
la maldad es una virtud humana,
y la espiritualidad es la lucha del hombre contra su maldad.

Etiquetas: borrar, objeto
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 06:15.