Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Zmienna $this
finito
post
Post #1





Grupa: Zarejestrowani
Postów: 110
Pomógł: 0
Dołączył: 16.12.2012

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


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;
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 9)
Crozin
post
Post #2





Grupa: Zarejestrowani
Postów: 6 476
Pomógł: 1306
Dołączył: 6.08.2006
Skąd: Kraków

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


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.
Go to the top of the page
+Quote Post
finito
post
Post #3





Grupa: Zarejestrowani
Postów: 110
Pomógł: 0
Dołączył: 16.12.2012

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


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;


Ten post edytował finito 9.05.2014, 16:22:55
Go to the top of the page
+Quote Post
johny_s
post
Post #4





Grupa: Zarejestrowani
Postów: 594
Pomógł: 122
Dołączył: 17.07.2005
Skąd: P-na

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


jako negacje?
Go to the top of the page
+Quote Post
trueblue
post
Post #5





Grupa: Zarejestrowani
Postów: 6 806
Pomógł: 1828
Dołączył: 11.03.2014

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


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.


--------------------
Go to the top of the page
+Quote Post
finito
post
Post #6





Grupa: Zarejestrowani
Postów: 110
Pomógł: 0
Dołączył: 16.12.2012

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


Jeszcze jedno. Rozumiem, że "first" to metoda jquery first()questionmark.gif, bo faktycznie taka istnieje;-)

  1. data.first = !data.first;
Go to the top of the page
+Quote Post
johny_s
post
Post #7





Grupa: Zarejestrowani
Postów: 594
Pomógł: 122
Dołączył: 17.07.2005
Skąd: P-na

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


raczej element tablicy jsonowej
Go to the top of the page
+Quote Post
trueblue
post
Post #8





Grupa: Zarejestrowani
Postów: 6 806
Pomógł: 1828
Dołączył: 11.03.2014

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


To właściwość obiektu.
Metody podobnie jak w wielu innych językach wywoływane są tak: metoda(), metoda(arg), metoda(arg1,arg2), itd.


--------------------
Go to the top of the page
+Quote Post
finito
post
Post #9





Grupa: Zarejestrowani
Postów: 110
Pomógł: 0
Dołączył: 16.12.2012

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


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");
Go to the top of the page
+Quote Post
trueblue
post
Post #10





Grupa: Zarejestrowani
Postów: 6 806
Pomógł: 1828
Dołączył: 11.03.2014

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


Tak, to metoda.
A zmienna $this to obiekt, który powstał z wywołania funkcji $ z argumentem this.
P.S. $() to ekwiwalent jQuery()


--------------------
Go to the top of the page
+Quote Post

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

 



RSS Aktualny czas: 19.08.2025 - 20:23