![]() |
![]() |
![]()
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(); |
|
|
![]() |
![]()
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 |
|
|
![]() ![]() |
![]() |
Aktualny czas: 6.10.2025 - 18:11 |