ECMAScript-arguments-objekti
- Edellinen sivu Funktioiden yleiskatsaus
- Seuraava sivu Function-objekti
arguments 对象
在函数代码中,使用特殊对象 arguments,开发者无需明确指出参数名,就能访问它们。
例如,在函数 sayHi() 中,第一个参数是 message。用 arguments[0] 也可以访问这个值,即第一个参数的值(第一个参数位于位置 0,第二个参数位于位置 1,依此类推)。
因此,无需明确命名参数,就可以重写函数:
function sayHi() { if (arguments[0] == "bye") { return; } alert(arguments[0]); }
Parametrimäärän tarkistaminen
Voit myös käyttää arguments-objektia tarkistamaan funktioiden parametrien määrää, viittaamalla ominaisuuteen arguments.length.
Seuraava koodi tulostaa kunkin kutsun aikana käytettyjen parametrien määrän:
function howManyArgs() { alert(arguments.length); } howManyArgs("string", 45); howManyArgs(); howManyArgs(12);
Yllä oleva koodi näyttää peräkkäin "2", "0" ja "1".
Huomautus:Erilaisesti kuin muut ohjelmointikieliä, ECMAScript ei varmista, että toimittujen parametrien määrä vastaa funktion määrittämää parametrimäärää. Kaikki kehittäjän määrittämät funktiot voivat hyväksyä minkä tahansa määrän parametreja (Netscapen dokumenttien mukaan enintään 255), eikä se aiheuta minkäänlaista virhettä. Kaikki puuttuvat parametrit siirretään funktioon undefinedina, ja ylimääräiset parametrit jätetään huomiotta.
Simuloi funktioiden ylilataus
Voit käyttää arguments-objektia arvioidaksesi toimittujen parametrien määrää ja simuloidaksesi funktioiden ylilatauksen:
function doAdd() { if(arguments.length == 1) { alert(arguments[0] + 5); } else if(arguments.length == 2) { alert(arguments[0] + arguments[1]); } } doAdd(10); // Tulostaa "15" doAdd(40, 20); // Tulostaa "60"
Kun on vain yksi parametri, doAdd()-funktio lisää parametrille 5. Jos on kaksi parametria, ne lasketaan yhteen ja palautetaan niiden summa. Siksi, doAdd(10) palauttaa "15", ja doAdd(40, 20) palauttaa "60".
Vaikka se ei ole yhtä hyvä kuin ylilataus, se riittää välttämään ECMAScriptin tämän rajoituksen.
- Edellinen sivu Funktioiden yleiskatsaus
- Seuraava sivu Function-objekti