po moim ostatnim pytaniu, ten jest bardziej dokładna dla mnie:„zmienna” zmienne „to” zmienne i „globalne” zmienne - Wewnątrz JavaScript Konstruktora
przykład:
function Foo() {
this.bla = 1;
var blabla = 10;
blablabla = 100;
this.getblabla = function() {
return blabla; // exposes blabla outside
}
}
foo = new Foo();
co ja teraz rozumiem:
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.
Czy rozumiem poprawnie?
Również - jeśli uwzględnię funkcję var blabla = 10;
i getblabla
, która używa jej w kontrahenta, to dla każdej instancji Foo ("foo" ...) zostanie zapisana funkcja kontrahenta Foo w pamięci, która obejmuje to "prywatna" zmienna. czy będzie to ta sama funkcja Foo co miejsce dla prywatnych zmiennych - dla instancji (takich jak "foo") z Foo?
Twoje pierwsze trzy twierdzenia są poprawne. Nie podążam całkowicie za tym, o co pytasz na ostatnie pytanie. Możesz wyjaśnić?Czy możesz też wypróbować zmienne, które nie są tak nazwane? Trudno jest naśladować. Dzięki. – Brad
To też jest dla mnie skomplikowane. Mam na myśli - to zamknięcie, prawda? i jest to wykonawca - więc na każde wystąpienie Foo pojawi się nowe zamknięcie Foo w pamięci? jak to działa? dzięki. – Daniel