![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 45 Pomógł: 2 Dołączył: 12.09.2005 Ostrzeżenie: (0%) ![]() ![]() |
Witam, mam problem, tak mniej więcej wygląda struktura mojej "klasy":
Problem jest w CYLib.mouseMove, to this powinno się odnosić do Lib, a nie do obiektu z którego wywołane jest onClick. Jak odwołać się do Lib? |
|
|
![]()
Post
#2
|
|
![]() Grupa: Zarejestrowani Postów: 6 476 Pomógł: 1306 Dołączył: 6.08.2006 Skąd: Kraków Ostrzeżenie: (0%) ![]() ![]() |
Powinieneś tutaj skorzystać z Function.call().
|
|
|
![]()
Post
#3
|
|
![]() Grupa: Zarejestrowani Postów: 2 350 Pomógł: 512 Dołączył: 4.01.2009 Skąd: Wrocław / Świdnica Ostrzeżenie: (0%) ![]() ![]() |
Myślę, że lepiej w tym wypadku zrobić sobie zmienną that:
Kod function Lib(){ this.that = this; i odwoływać się właśnie przez tą zmienną -------------------- |
|
|
![]()
Post
#4
|
|
Grupa: Zarejestrowani Postów: 45 Pomógł: 2 Dołączył: 12.09.2005 Ostrzeżenie: (0%) ![]() ![]() |
Myślę, że lepiej w tym wypadku zrobić sobie zmienną that: Kod function Lib(){ this.that = this; i odwoływać się właśnie przez tą zmienną Ale co to daje? Nic. Bo nie odwołam się przez this.that .. Powinieneś tutaj skorzystać z Function.call(). Nie wiem czy dobrze napisałem, ale próba odwołania się przez :
Kończy się : Uncaught TypeError: Cannot call method 'call' of undefined Ten post edytował Yorki 31.08.2012, 23:38:33 |
|
|
![]()
Post
#5
|
|
![]() Grupa: Zarejestrowani Postów: 6 476 Pomógł: 1306 Dołączył: 6.08.2006 Skąd: Kraków Ostrzeżenie: (0%) ![]() ![]() |
@kamil4u: Jak już to var that = this; - w takich przypadkach nie zależy nam na tym by właściwość ta była publiczna.
Cytat Ale co to daje? Nic. Bo nie odwołam się przez this.that .. W takim przypadku nie odwołujesz się przez this.that, a samo that, które jest referencją do pożądanego przez Ciebie obiektu/kontekstu.Co do Function.call()
EDIT: Ale w sumie, lepiej używać już obejścia w postaci self/that - mieszanie z kontekstem wywołania obiektów w JS prędzej czy później zaczyna być męczące. Ten post edytował Crozin 1.09.2012, 01:32:56 |
|
|
![]()
Post
#6
|
|
Grupa: Zarejestrowani Postów: 45 Pomógł: 2 Dołączył: 12.09.2005 Ostrzeżenie: (0%) ![]() ![]() |
Dzięki już ogarniam z tym Function.call()
![]() |
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 14.08.2025 - 12:00 |