Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [JS] Zmienna ilośc argumentów nie dziala
23kulpamens
post 21.05.2009, 20:51:08
Post #1





Grupa: Zarejestrowani
Postów: 57
Pomógł: 1
Dołączył: 11.10.2007

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


W dość obszernym kodzie JS wielokrotnie używam własnej funkcji loadContent. Zawsze jest ona używana z jednym dwoma lub czterema argumentami. Przy deklaracji funkcji są cztery argumenty. W czasie modernizacji kodu, okazało się że przydałby się piąty argument. Więc dodałem o do deklaracji funkcji, dodałem jego funkcjonalność i nie mogę go użyć. Korzystając z funkcji w jednym miejscu, ile bym argumentów nie dał zawsze mi pokazuje że podane są 4. Do sprawdzania ilości argumentów używam wewnątrz funkcji argumants.length. Przed modernizacją w tym miejscu kodu do funkcji podawane były 4 argumenty. Jak dam pięć, to piąty jest undefinied, jak dam trzy to kod się wywala, bo funkcjonalność nie działa. Poza tym zawsze jest pokazane, że do funkcji przekazano 4 argumenty. Ktoś wie o co chodzi?? Mi już brakuje pomysłów.

Ten post edytował 23kulpamens 21.05.2009, 20:54:39


--------------------
Ta sygnaturka to lekkie przegięcie. To poważne forum. Pomijam już fakt naruszenia regulaminu. Usuwam /~nospor/ szkoda :(
Go to the top of the page
+Quote Post
nospor
post 21.05.2009, 20:55:08
Post #2





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




rozpisales sie.... to fajnie.... szkoda tylko ze zapomniales zapodac kodu.... winksmiley.jpg


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
23kulpamens
post 21.05.2009, 21:02:28
Post #3





Grupa: Zarejestrowani
Postów: 57
Pomógł: 1
Dołączył: 11.10.2007

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


Przed modernizacją kod funkcji, a właściwie to metody był taki:
  1. loadContent: function (contentName, ignoreHistory, onCompl, contArgs){
  2. (...)
  3. },


a teraz jest taki:
  1. loadContent: function (contentName, ignoreHistory, onCompl, contArgs, forceReload){
  2. console.log("Num:", arguments.length);
  3. (...)
  4. },


natomiast miejsce użycia, wyglądąlo tak:
  1. loadContent("commSet", false, null, $H({commId: id}));


a wygląda tak:
  1. loadContent("commSet", false, null, $H({commId: id}), true);


do sprawdzania ilości argumentów używam:
  1. console.log("Num:", arguments.length);


a w konsoli zawsze mam taki komunikat:
Kod
Num: 4


nie ważne czy przekażę 3 czy 5 czy 10 argumentów. forceReload nie działa sad.gif


Temat do usunięcia. Argumenty były przekazywane przez jeszcze jedną metodę zanim trafiały do właściwej. Stąd stała maksymalna liczba 4.

Ten post edytował 23kulpamens 21.05.2009, 23:07:29


--------------------
Ta sygnaturka to lekkie przegięcie. To poważne forum. Pomijam już fakt naruszenia regulaminu. Usuwam /~nospor/ szkoda :(
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 Wersja Lo-Fi Aktualny czas: 19.06.2025 - 01:06