Object ng arguments ng ECMAScript

object na arguments

Sa code ng function, gamit ang espesyal na object na arguments, ang developerHindi kailangan malaman ang pangalan ng argumentopara makapasok sa kanila.

Halimbawa, sa function na sayHi(), ang unang argumento ay message. Maaring access din ang halaga nito gamit ang arguments[0], na ang halaga ng unang argumento (ang unang argumento ay nasa posisyon 0, ang ikalawang argumento ay nasa posisyon 1, at iba pa.).

Kaya, hindi kailangan malaman ang pangalan ng argumento para maulit ang function:

function sayHi() {
  kung gayunman (arguments[0] == "bye") {
    return;
  }
  alert(arguments[0]);
}

Pagtitingnan ang bilang ng mga parameter

Maaari rin gamitin ang object na arguments upang makita ang bilang ng mga parameter ng function, sa pamamagitan ng pagtutukoy sa katangian na arguments.length.

Ang nakalagay na code na ito ay magbubunyag ng bilang ng mga parameter na ginamit nang bawat pagtawag sa function:

function howManyArgs() {
  alert(arguments.length);
}
howManyArgs("string", 45);
howManyArgs();
howManyArgs(12);

Ang nakalagay na code na ito ay magpakita ng susunod-susunod na "2", "0", at "1".

Komentaryo:Hindi katulad ng ibang wika ng programadong disiplina, hindi magtitingnan ang ECMAScript kung ang bilang ng mga parameter na pinapasa sa function ay katumbas ng bilang ng mga parameter na tinukoy sa paglilikha ng function. Ang lahat ng function na pinaglilingkuran ng tagapaglikha ay maaaring tanggapin anumang bilang ng mga parameter (ayon sa dokumento ng Netscape, ang pinakamataas na bilang na maaaring tanggapin ay 255), at hindi magiging sanhi ng anumang error. Ang bawat kasuklang parameter ay ipapasa sa function bilang undefined, at ang mga sobra na parameter ay ipagwalang bahala.

Pag-reload ng function

Gamitin ang object na arguments upang malaman ang bilang ng mga parameter na ipinasa sa function, at maayos na simulan ang pag-reload ng function:

function doAdd() {
  if(arguments.length == 1) {
    alert(arguments[0] + 5);
  } else if(arguments.length == 2) {
    alert(arguments[0] + arguments[1]);
  }
}
doAdd(10);	//Ibubunyag na "15"
doAdd(40, 20);	//Ibubunyag na "60"

Kung may isang parameter lamang, magpapakabit ng 5 ang function na doAdd() sa parameter. Kung may dalawang parameter, ito ay papagpipisan ang dalawang parameter at ibibigay ang kanilang kabuuan. Kaya, ang output ng doAdd(10) ay "15", at ang output ng doAdd(40, 20) ay "60".

Bagama't hindi gaanong mabuti kaysa sa pag-reload, gayunpaman, ito ay sapat na upang maiwasan ang ganitong pagbabawal ng ECMAScript.