Estoy un poco confundido con el deleteoperador de JavaScript . Tome el siguiente código:
var obj = {
helloText: "Hello World!"
};
var foo = obj;
delete obj;
Después de que este fragmento de código se haya ejecutado, objes null, pero fooaún se refiere a un objeto exactamente igual obj. Supongo que este objeto es el mismo objeto que fooseñaló.
Esto me confunde, porque esperaba que la escritura delete objeliminara el objeto que objapuntaba en la memoria, no solo la variable obj.
Se debe esto a la basura de JavaScript Collector está trabajando en una base retener / liberación, por lo que si no tuviera ninguna otra variable que apunta al objeto, que podría ser eliminado de la memoria?
(Por cierto, mi prueba se realizó en Safari 4.)
var obj = { helloText: "Hello World!" }; var foo = obj; delete obj;objeto no se elimina verificar objeliminar el uso: delete obj.helloTexty luego verificarfoo now foo is an empty object
deleteno es para eliminar objetos en javascript. deleteSe utiliza para eliminar una clave de objeto. En su caso var obj = { helloText: "Hello World!" }; var foo = obj; delete obj;, el objeto no se elimina. Compruebe obj. A continuación, ejecute delete obj.helloTexty puede ver que fooahora apunta a un vacío objeto. "" "