ECMAScript arguments 对象

Kifaa cha arguments

Kwenye kipindi cha kifaa, mtengenezaji wa programu kwa kusoma kifaa khasi cha arguments,Hakuna uamuzi wa kuangalia jina la mengineuinafikia yao.

Kwa mfano, katika kifaa sayHi(), mengineu wa kwanza ni message. Inaweza pia kufikia thamani hii kwa arguments[0], iji kwenda kufikia thamani ya mengineu wa kwanza (mengineu wa kwanza wako katika nafasi 0, mengineu wa pili wako katika nafasi 1, na k.s.w.).

Kwa hivyo, hatarakia kwa jina la muhimu la ujumbe, inaweza kurekoda kifo cha kifaa:

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

检测参数个数

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

Maktaba hii inaonyesha kiwango cha thamani kilichotumika kwa fungsi kila mara tunatokwa kufanya:

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

Maktaba hii inaonyesha '2', '0' na '1' kila mara.

Mafaraha:Kama ni ngumu kama lugha ya programu nyingine, ECMAScript haitakikani kwamba kiwango cha thamani kilichotumika kwa fungsi kinaangalia kiwango cha thamani kilichotumika kwa fungsi. Fungsi zote zilizotumika na mwanachama zingewarudisha thamani kwa ukweli (kwa siku ya Netscape, inaweza kumaliza 255 thamani), bila kusababisha kosa. Thamani zilizokosa zizatumiwa kwa thamani zisizotumika kwa fungsi, thamani zaidi zizitakiwa kusababisha kosa.

Mimba wa fungsi

Tumia kifaa cha arguments kuwaona kiwango cha thamani kilichotumika kwa fungsi, kwa hivyo inasababisha kurejea kama fungsi inayorejea:

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

Kama inaeonekana kuna kiwango kimoja, fungsi ya doAdd() inaongeza 5 kwa thamani. Kama inaeonekana kuna thamani mbili, inaongeza thamani hizo mbili na kurejea kuzingatia pamoja. Kwa hivyo, doAdd(10) inaonyesha '15', na doAdd(40, 20) inaonyesha '60'.

Inaonesha ukweli sana kama ukurunguka wa kina hiki cha ECMAScript, inasababisha kufikia ukweli hiki.