Witaj, układarki.Jak uzyskać dostęp do statycznego elementu na instancji?
Oto kod, z którym walczę od wielu godzin, chodzi o to, aby śledzić liczbę utworzonych instancji, ale także umożliwić wywołanie metody statycznej i zmianę/aktualizację statycznego elementu. Jest podobne pytanie, ale nie mogę wdrożyć żadnego rozwiązania mojego problemu.
Dla uproszczenia zmieniłem tutaj nazwę konstruktora i członka. Myślę, że to oczywiste, co się dzieje. Chcę, aby zarówno obiekt konstruktora, jak i instancja współużytkowały tę samą właściwość statyczną.
Mogę uzyskać dostęp do statycznego elementu na obiekcie konstruktora, ale na instancji dostałem niezdefiniowany.
Każda pomoc zostanie doceniona.
Podziękowania zarówno dla mor, jak i Aeorila. Z uwagi na to, że to pytanie było zlokalizowane, odpowiedź obojga pomaga mi lepiej zrozumieć prototypowe dziedziczenie. P.S. W JavaScript nie ma czegoś takiego jak element statyczny, instancja obiektu nie dziedziczy bezpośrednio, tak jak się tego spodziewałem. Tutaj jest prototypowa magia. Dzięki
Tak, widziałem to teraz. Chodzi o to, że udostępniam tę samą zmienną między konstruktorem obiektów a jej instancją, ale również potrafię uruchomić metodę statyczną lub metodę na konstruktorze obiektów. W ostatecznym wywołaniu dziennika staticProperty na instancji jest niezdefiniowane. –
Pokazałem, że myFoo.staticProperty było niezdefiniowane w logu w celu zilustrowania tego bez funkcji "kludge", jak myFoo.returnFooStaticProperty() Nie sądzę, że można uzyskać dostęp do statycznego elementu członkowskiego z obiektu instancji. Funkcja "kludge" działa, ale czy możesz wyjaśnić, dlaczego chcesz udostępnić zmienną statyczną między klasą a jej instancjami? Być może ponowne przemyślenie sposobu działania z prototypami (i dziedziczeniem) byłoby opłacalne? – Aeoril
Tak, jak wspomniałem, podejście prototypowe czasami mnie wprawia w zakłopotanie.Chodzi o to, że statyczne elementy są współużytkowane przez wszystkie instancje i samą funkcję klasy/konstruktora, ale jej wartość jest przechowywana w jednym miejscu, co oznacza, że instancje obiektów nie dziedziczą tej wartości. I tu pojawia się prototyp. Jedyną różnicą między twoją a mors jest to, że muszę wywołać metodę na funkcji konstruktora. –