Statyczne pola i metody klasy w JavaScript

Stronę tą wyświetlono już: 190 razy

Deklaracja pól statycznych klasy

Do pól statycznych klasy można uzyskać dostęp bez konieczności tworzenia obiektu klasy. Umożliwia to bardziej uporządkowane rozmieszczenie zmiennych. Oto prosty przykład:

Listing 1
  1. function Person(_name, _surname){
  2. this.name = _name; // pole publiczne klasy
  3. this.surname = _surname;
  4. Person.nuberOfObjects += Person.numberOfObjects ? Person.numberOfObjects + 1 : 1;
  5. }
  6. var person = new Person("Marian", "Paździoch");
  7. alert(Person.nymberOfObjects);

Deklaracja metod statycznych klasy w JavaScript

Metody statyczne tworzy się podobnie jak pola statyczne, oto przykład:

Listing 2
  1. function Person(_name, _surname){
  2. this.name = _name; // pole publiczne klasy
  3. this.surname = _surname;
  4. Person.numberOfObjects = ++Person.numberOfObjects || 1; // zmienna statyczna
  5. Person.removePerson = function(person){ // utworzenie metody statycznej
  6. delete person;
  7. Person.numberOfObjects--;
  8. }
  9. }
  10. var person = new Person("Marian", "Paździoch"); // tworzenie pierwszej osoby
  11. alert(Person.numberOfObjects); // wyświetlanie liczby osób
  12. Person.removePerson(person); // wywołanie metody statycznej
  13. alert(Person.numberOfObjects); // wyświetlanie liczby osób

W powyższym kodzie metoda statyczna removePerson rzeczywiście usunie obiekt, ale tylko wtedy, gdy jedynym wskaźnik na ten obiekt będzie podanym na jej wejście argumentem.

Komentarze