Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Zmienna $this
Forum PHP.pl > Forum > Po stronie przeglądarki > JavaScript
finito
Tak się zastanawiam...chodzi mi o samą składnię. Nie mogę w tutorialu się doszukać deklaracji var $this ani var data. Skąd parser ma wiedzieć, że te zmienne istnieją?

  1. $this = $(this);
  2. data = $this.data("changeColor");
  3. if(!data)
  4. {
  5. data = $this.data("changeColor", settings);
  6. $this.bind("click", onClick);
  7. }
  8. $this.css("background-color", settings.colorFirst);
  9. data.first = true;
Crozin
Jeżeli nie ma var nie jest to zmienna lokalna, a globalna (przypisana do obiektu window). Jest to bardzo zła praktyka i właściwie powinna być uważana za bezwzględny błąd.
finito
Cytat(Crozin @ 9.05.2014, 17:10:24 ) *
Jeżeli nie ma var nie jest to zmienna lokalna, a globalna (przypisana do obiektu window). Jest to bardzo zła praktyka i właściwie powinna być uważana za bezwzględny błąd.


Tsa...hehe...chciałem powiedzieć, że ten tutorial dostałem dzisiaj na tym forum i już mniejsze od kogo.

No i weź się tu ucz...

Jeszcze jedno...
Jak mam sobie wytłumaczyć to:
  1. data.first = !data.first;
johny_s
jako negacje?
trueblue
Cytat(finito @ 9.05.2014, 17:14:19 ) *
  1. data.first = !data.first;

wartość = not wartość , logiczna negacja.
jeśli będzie data.first=true, to po operacji będzie false.
finito
Jeszcze jedno. Rozumiem, że "first" to metoda jquery first()questionmark.gif, bo faktycznie taka istnieje;-)

  1. data.first = !data.first;
johny_s
raczej element tablicy jsonowej
trueblue
To właściwość obiektu.
Metody podobnie jak w wielu innych językach wywoływane są tak: metoda(), metoda(arg), metoda(arg1,arg2), itd.
finito
Cytat(trueblue @ 9.05.2014, 17:33:45 ) *
To właściwość obiektu.
Metody podobnie jak w wielu innych językach wywoływane są tak: metoda(), metoda(arg), metoda(arg1,arg2), itd.


No właśnie uprzytomniłem sobie, że do obiektów js można przecież dodawać właściwości - przy pomocy właśnie takiej składni.

Rozumiem, że to drugie data po operatorze "=" to już metoda...
  1. $this = $(this);
  2. data = $this.data("changeColor");
trueblue
Tak, to metoda.
A zmienna $this to obiekt, który powstał z wywołania funkcji $ z argumentem this.
P.S. $() to ekwiwalent jQuery()
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.