mozilla
Your Search Results

    arguments

    This translation is in progress.

    Shrnutí

    Objekt podobný poli, který obsahuje všechny argumenty, které byly funkci dodány.

    Popis

    Objekt arguments je lokální proměnná dostupná ve všech funkcích.

    Dříve byl objekt arguments vlastnost funkce - toto chování je ale zastaralé a v současných prohlížečích nedostupné.

    Pomocí objektu arguments můžete přistupovat k argumentům předaným funkci. Obsahuje prvky odpovídající všem argumentům, přičemž první prvek má index 0 (stejně jako v případě pole). Například, pokud funkce dostane tři argumenty můžete k nim přistupovat takto:

    arguments[0]
    arguments[1]
    arguments[2]
    

    Argumenty mohou také být přepsány:

    arguments[1] = 'nová hodnota';
    Poznámka: Interpreter SpiderMonkey měl chybu kvůli které arguments[n] nešlo přepsat, pro n větší než počet formálních argumentů nebo předaných argumentů. Toto chování bylo opraveno v interpreteru pro JavaScript 1.6.

    Objekt arguments není pole. Je podobný poli, ale nemá žádnou z vlastností pole, kromě délky (length).  Například nemá metodu pop. Nicméně může být na pole převeden:

    var args = Array.prototype.slice.call(arguments);

    Pokud je dostupné Array generics, lze použít i zjednodušený zápis:

    var args = Array.slice(arguments);

     

    Objekt arguments je dostupný pouze v těle funkce. Pokusy o přístup k arguments mimo funkci budou odměněny chybovou hláškou.

    Objekt arguments je užitečný, když voláte funkci s více argumenty, než formálně přijímá, umožňuje funkcím používat proměnný počet argumentů. Pro zjištění počtu argumentů můžete použít vlastnost arguments.length a poté zpracovat každý argument pomocí smyčky (for, while, ...). (Pokud chcete zjistit formální počet argumentů, použijte vlastnost Function.length.)

    Vlastnosti

    arguments.callee
    Odkaz na právě běžící funkci (na funkci, jejíž argumenty objekt obsahuje).
    arguments.caller
    Odkaz na funkci, která tuto funkci spustila. (Zastaralé)
    arguments.length
    Počet argumentů, které byly funkci předány.

    Příklady

    Příklad: Funkce, která spojí několik řetězců

    Tento příklad definuje funkci, která spojí libovolný počet řetězců. Jedinný formální argument této funkce je řetězec, který představuje znak, který bude oddělovat jednotlivé části výsledku. Funkce je definována takto:

    function spojŘetězce(oddělovač){
      var args = Array.prototype.slice.call(arguments, 1); //Převeď na pole bez 1. prvku
      return args.join(oddělovač); //Spoj prvky
    }

    Můžete předat libovolný počet argumentů:

    // vrátí "červená, zelená, modrá"
    spojŘetězce(", ", "červená", "zelená", "modrá");
    
    // vrátí "Ahoj světe!"
    spojŘetězce(" ", "Ahoj", "světe!");
    
    // vrátí "nejkulaťoulinkatější"
    spojŘetězce("", "nej", "ku", "la", "ťou", "lin", "ka", "těj", "ší");

    Příklad: Funkce, která vytvoří HTML seznam

    Tato funkce vytvoří HTML list element obsahující řetězce poskytnuté funkci jako jednotlivé položky seznamu.

    function list(seřazený) {
      var výsledek;
      if(seřazený){
        výsledek = document.createElement("ol");
      }else{
        výsledek = document.createElement("ul");
      }
      
      var li;
      for(var i = 1; i<arguments.length; i++){
        li = document.createElement("li");
        li.textContent = arguments[i];
        výsledek.appendChild(li);
      }
      
      return výsledek;
    }

    První argument funkce je pravdivost, ostatní jsou řetězce. Můžete předat kolik argumentů chcete. Například:

    var listHTML = list(false, "Raz", "Dva", "Tři").outerHTML;
    
    /* listHTML je:
    
     <ul>
      <li>Raz</li>
      <li>Dva</li>
      <li>Tři</li>
     </ul>
    
    */

    Document Tags and Contributors

    Contributors to this page: m93a, fscholz
    Last updated by: fscholz,
    Hide Sidebar