Jeśli Counter to obiekt, to czy zmienna "i" to właściwość?

Jeśli Counter to obiekt, to czy zmienna "i" to właściwość?
JA
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 49
0

Witam !

Chciałbym się zapytać czy dobrze rozumuje, w poniższym fragmencie kodu, jestem prawie pewny że zmienna "Counter" to obiekt. Jak w tym przypadku nazwać zmienną " i " ? Na początku myślałem że jest to właściwość obiektu " Counter ".

Z góry dziękuje za odpowiedź.

Kopiuj
const EventEmitter = require('events').EventEmitter;

const Counter = function(i) {
  this.increment = function() {
    i++;
    this.emit('incremented',i);
  }
}

Counter.prototype = new EventEmitter();
const counter = new Counter(10);

Patryk27
  • Rejestracja: dni
  • Ostatnio: dni
  • Lokalizacja: Wrocław
  • Postów: 13042
1

Zmienna i to zmienna lokalna w anonimowej funkcji wewnątrz drugiej anonimowej funkcji, którą podpinasz do stałej Counter.


Aby uzyskać publiczne pole, musiałbyś podejść do tego na przykład tak:

Kopiuj
function Counter() {
  this.i = 0;
}

let counter = new Counter();

Ew. aby uzyskać odpowiednik pola prywatnego:

Kopiuj
function Counter() {
  let i = 0;

  this.getCounter = () => {
    return i;
  };
}

let counter = new Counter();

(przy czym w tym wypadku i nadal jest zmienną lokalną - tyle tylko, że jest kontekstem powiązana z instancją licznika, więc można powiedzieć, że symbolicznie służy za pole prywatne.)

Patryk27
  • Rejestracja: dni
  • Ostatnio: dni
  • Lokalizacja: Wrocław
  • Postów: 13042
1

Na temat odpowiadaj w postach.

Zmienna " Counter " to obiekt ?

Nie widzę żadnej zmiennej Counter w moim kodzie ;-)

Zmienna " i " istnieje (jest przechowywana w pamięci ) dopóki istnieje " Counter " ?

Lokalna zmienna i jest przechowywana w pamięci co najmniej tak długo, jak istnieje utworzona instancja Counter.
Każde new Counter() powoduje utworzenie nowego kontekstu, a co za tym idzie - kolejnego, unikalnego i.

JA
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 49
0
Kopiuj
const Counter = function(i){....}

to nie jest zadeklarowanie zmiennej i przypisanie jej do funkcji ?

Patryk27
  • Rejestracja: dni
  • Ostatnio: dni
  • Lokalizacja: Wrocław
  • Postów: 13042
1

To jest zdefiniowanie funkcji i przypisanie jej do stałej.

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.