Dipende da ciò che si vuole, utilizzando un VAR all'interno della funzione non renderlo accessibile al di fuori del campo di applicazione funzione, ma dal punto di vista delle prestazioni se si utilizza oggetti tenere tutto all'interno di esso, si è già memorizzato questo oggetto nella memoria perché definire di nuovo un'altra variabile.
come detto nella analisi della memoria 101 forma cromo devtools documentazione:
memoria può essere tenuto da un oggetto in due modi: direttamente dall'oggetto stesso, e implicitamente tenendo riferimenti ad altri oggetti, e quindi impedendo loro di essere automaticamente disposti da un garbage collector (GC in breve).
La dimensione della memoria che viene trattenuta dall'oggetto stesso viene chiamata dimensione ridotta. Gli oggetti JavaScript tipici hanno una memoria riservata per la loro descrizione e per la memorizzazione di valori immediati.
Di solito, solo gli array e le stringhe possono avere dimensioni superficiali significative. Tuttavia, le stringhe spesso hanno la loro memoria principale nella memoria del renderer, esponendo solo un piccolo oggetto wrapper nell'heap di JavaScript.
Tuttavia, anche un piccolo oggetto può contenere una grande quantità di memoria indirettamente, impedendo che altri oggetti vengano eliminati dal processo di garbage collection automatico. La dimensione della memoria che verrà liberata, quando l'oggetto stesso viene eliminato e i suoi oggetti dipendenti resi irraggiungibili dalle radici di GC, è detta dimensione mantenuta.
Devtools Docs
fonte
2014-12-21 13:06:11
probabilmente si desidera controllare: http://stackoverflow.com/questions/3564238/object-oriented-javascript-with-prototypes-vs-closures – phadej
controllare il link per capire questo con maggiore chiarezza https : //scotch.io/@alZami/understanding-this-in-javascript –