Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Prośba o wytłumaczenie elementów skryptu
marlowe
post
Post #1





Grupa: Zarejestrowani
Postów: 178
Pomógł: 0
Dołączył: 2.11.2003
Skąd: Kraków

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


Witam,
bawię się właśnie JsHacker 1.0 :) ale niestety JavaScript znam tylko "z widzenia" i mam problem z trzecim etapem. Kod wygląda tak:
Kod
<script type="text/javascript" language="JavaScript">
<!--

  function rome(N,s,R,b,a,o) {
    R='IVXLCDM'.split(s=''),b=0,a=2;
    while(N) {
      o=N%(a=7-a);
      N=N/a^0;
      while(o)
        s=R[o-->3?b+N%2+(N&=~1,o=1):b]+s;
      b++;
    }
    return s;
  }

  function check_passwd(v) {                                                                                                                                                                                                                           with(top)
    rome(v) == MCMXXXIX ? location.href = 'p4_'+v+'.html' : alert('Hasło niepoprawne !!!   ');
    return false;
  }

//-->
</script>

Oczywiście wywoływany jest poprzez:
  1. <form onSubmit="return check_passwd(passwd.value)">
  2. Podaj hasło: <input type="password" name="passwd" size="8">
  3.  
  4. <input type="submit" value="Ok">
  5. </form>

Rzecz jasna, nie chcę prosić o podanie wyniku ;) tylko o wytłumaczenie paru elementów bym mógł sobie dalej kombinować:
  1. czy dobrze się domyślam, że wywołanie funkcji, która w definicji ma kilka parametrów, z jednym z parametrem, powoduje, że parametr ten odczytywany jest jako pierwszy z listy parametrów z definicji, a pozostałe są puste (tj, że wywołanie rome(v) wykona funkcję z parametrem N == v);
  2. czy pierwsza linia funkcji rome() oznacza, że najpierw jest wywoływana instrukcja split dla 'IVXLCDM' z parametrem s='' , której wynik jest zapisywany w R (co w praktyce, jak rozumiem, oznacza zapisanie w kolejnych rekordach tablicy R ciągów zawierających kolejne znaki I, V, X, ...) natomiast b=0,a=2 to po prostu ustalenie wartości tych zmiennych?
  3. jedna z instrukcji to N=N/a^0 - z informacji w książce, którą mam wynika, że najpierw wykonuje się operację dzielenia; chciałem się natomiast dowiedzieć czy słusznie mi się wydaje, że XOR z 0 może dawać co najwyżej... 0?
  4. co oznacza zapis R[o-->...] ?- mam oczywiście na myśli "strzałkę";
  5. co oznacza with(top) w funckji check_passwd()?
Z góry dziękuję za odpowiedzi.
Pozdrawiam.
Bartek

Ten post edytował marlowe 25.06.2004, 16:56:43
Go to the top of the page
+Quote Post

Posty w temacie


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: 20.08.2025 - 06:26