dopo la mia ultima domanda, questo è più accurato per me:variabili “var”, "Questo" variabili e variabili "globali" - all'interno di un costruttore JavaScript
esempio:
function Foo() {
this.bla = 1;
var blabla = 10;
blablabla = 100;
this.getblabla = function() {
return blabla; // exposes blabla outside
}
}
foo = new Foo();
quello che ho capire ora:
this.bla = 1; // will become an attribute of every instance of FOO.
var blabla = 10; // will become a local variable of Foo(will **not** become an attribute of every instance of FOO), which could be accessed by any instance of FOO - only if there's a method like "this.getBlabla". that's a "closer" ?
blablabla = 100; // will define a **new** (or change if exist) global(window) variable.
Ho capito correttamente?
Inoltre, se includo lo var blabla = 10;
e la funzione getblabla
che lo utilizza nell'appaltatore, quindi per ogni istanza di Foo ("pippo" ...), nella memoria viene salvata una funzione appaltatore Foo che include questo variabile "privata". o sarà la stessa funzione Foo del posto per le variabili private - per le istanze ALL (come "foo") di Foo?
Le tue prime tre asserzioni sono corrette. Non seguo completamente quello che chiedi per la tua ultima domanda. Puoi chiarire?Puoi provare anche variabili non nominate in modo simile? È difficile da seguire. Grazie. – Brad
È complicato anche per me. Voglio dire - è una chiusura, giusto? ed è un appaltatore - quindi, per ogni istanza di Foo, ci sarà una nuova chiusura di Foo nella memoria? come funziona questa roba? Grazie. – Daniel