مفهوم arguments ECMAScript

arguments 对象

在函数代码中,使用特殊对象 arguments,开发者无需明确指出参数名,就能访问它们。

例如,在函数 sayHi() 中,第一个参数是 message。用 arguments[0] 也可以访问这个值,即第一个参数的值(第一个参数位于位置 0,第二个参数位于位置 1,依此类推)。

因此,无需明确命名参数,就可以重写函数:

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

检测参数个数

还可以用 arguments 对象检测函数的参数个数,引用属性 arguments.length 即可。

下面的代码将输出每次调用函数使用的参数个数:

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

Manuwarin saukar a cikin haka za a iya samar da "2", "0" da "1" a cikin haka.

Tushen nunaBa tare da farko saukar yin nuni kanan ma'anar da an samar da da suka faruwa kanan girmamun a kanan saukar ba, ECMAScript yana samar da nuni kanan ma'anar da an samar da da suka faruwa kanan girmamun a kanan saukar. Koyaya, girmamun da an samar da saukar a cikin haka zai iya samar da kowacce kanan ma'anar, kuma ba za a iya samar da kwanan saukar ba. Manuwarin saukar a cikin haka za a iya samar da kowacce kanan ma'anar, kuma ba za a iya samar da kwanan saukar ba.

Suka samun saukar kamar saukar

A cikin haka, za a samu kanan ma'anar da an samar da da suka faruwa kanan girmamun a kanan saukar, kuma zai iya samun saukar kamar saukar kamar saukar a cikin haka.

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

Mai yin saukar doAdd() yana kara 5 kanan ma'anar da an samar da. Mai yin saukar doAdd(10) yana samar da "15", amma mai yin saukar doAdd(40, 20) yana samar da "60".

Yayi a kai saman girmamun kamar saukar, amma ya kai saman yadda zai iya yin kari da hadewar ECMAScript a wannan hali.