Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> JavaScript OOP - zmienne i metody prywatne
nywojtas
post
Post #1





Grupa: Zarejestrowani
Postów: 1
Pomógł: 0
Dołączył: 31.05.2013

Ostrzeżenie: (0%)
-----


Mam pytanie, jak mogę w js uzyskać dostęp do metod i zmiennych prywatnych. Jeżeli zmienną "zmienna3" próbuje wyświetlić w metodzie którą utworzyłem w konstruktorze to działa poprawnie, ale metoda prywatna już nie działa.

Jeśli tworzę metodę przez prototype to "zmienna3" jest niezdefiniowana.

Jak można uzyskać dostęp do tej zmiennej i metody priv?

Dzięki za pomoc

Kod
function Test(zmienna, zmienna2) {
    var zmienna3 = 3;
    this.zmienna = zmienna;
    this.zmienna2 = zmienna2;
    
    this.metoda = function() {
      alert(zmienna3);
      priv();
    };
    
    var priv = function() {
        alert(this.zmienna2);
    };
}

Test.prototype.metoda2 = function() {
    alert(this.zmienna);
    alert(zmienna3);
};

var obj = new Test(1, 2);
obj.metoda();
obj.metoda2();
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
lukasz1985
post
Post #2





Grupa: Zarejestrowani
Postów: 205
Pomógł: 43
Dołączył: 5.03.2012

Ostrzeżenie: (0%)
-----


Sposób tworzenia "metod i pól prywatnych" jest nieco inny od tego co zaprezentowałeś.
http://javascript.crockford.com/private.html
Wymaga to dobrej znajomości JS.
Generalnie ta praktyka jest rzadko stosowana ponieważ zmniejsza czytelność kodu. Lepiej jest stosować standardy nazewnictwa do oznaczania prywatnych metod i pól (na przykład używając przedrostka "_").

Innym dobrym rozwiązaniem jest biblioteka OOP, na przykład:
https://github.com/tnhu/jsface
Go to the top of the page
+Quote Post

Posty w temacie


Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 6.10.2025 - 18:11