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;