ECMAScript arguments ¶ÔÏó
arguments ¶ÔÏó
ÔÚº¯Êý´úÂëÖУ¬Ê¹ÓÃÌØÊâ¶ÔÏó arguments£¬¿ª·¢ÕßÎÞÐèÃ÷È·Ö¸³ö²ÎÊýÃû£¬¾ÍÄÜ·ÃÎÊËüÃÇ¡£
ÀýÈ磬ÔÚº¯Êý sayHi() ÖУ¬µÚÒ»¸ö²ÎÊýÊÇ message¡£Óà arguments[0] Ò²¿ÉÒÔ·ÃÎÊÕâ¸öÖµ£¬¼´µÚÒ»¸ö²ÎÊýµÄÖµ£¨µÚÒ»¸ö²ÎÊýλÓÚλÖà 0£¬µÚ¶þ¸ö²ÎÊýλÓÚλÖà 1£¬ÒÀ´ËÀàÍÆ£©¡£
Òò´Ë£¬ÎÞÐèÃ÷È·ÃüÃû²ÎÊý£¬¾Í¿ÉÒÔÖØÐ´º¯Êý£º
function sayHi() {
if (arguments[0]
== "bye") {
return;
}
alert(arguments[0]);
}
¼ì²â²ÎÊý¸öÊý
»¹¿ÉÒÔÓà arguments ¶ÔÏó¼ì²âº¯ÊýµÄ²ÎÊý¸öÊý£¬ÒýÓÃÊôÐÔ arguments.length ¼´¿É¡£
ÏÂÃæµÄ´úÂ뽫Êä³öÿ´Îµ÷Óú¯ÊýʹÓõIJÎÊý¸öÊý£º
function howManyArgs() { alert(arguments.length); } howManyArgs("string", 45); howManyArgs(); howManyArgs(12);
ÉÏÃæÕâ¶Î´úÂ뽫ÒÀ´ÎÏÔʾ "2"¡¢"0" ºÍ "1"¡£
×¢ÊÍ£ºÓëÆäËû³ÌÐòÉè¼ÆÓïÑÔ²»Í¬£¬ECMAScript ²»»áÑéÖ¤´«µÝ¸øº¯ÊýµÄ²ÎÊý¸öÊýÊÇ·ñµÈÓÚº¯Êý¶¨ÒåµÄ²ÎÊý¸öÊý¡£¿ª·¢Õß¶¨ÒåµÄº¯Êý¶¼¿ÉÒÔ½ÓÊÜÈÎÒâ¸öÊýµÄ²ÎÊý£¨¸ù¾Ý Netscape µÄÎĵµ£¬×î¶à¿É½ÓÊÜ 255 ¸ö£©£¬¶ø²»»áÒý·¢ÈκδíÎó¡£ÈκÎÒÅ©µÄ²ÎÊý¶¼»áÒÔ undefined ´«µÝ¸øº¯Êý£¬¶àÓàµÄº¯Êý½«ºöÂÔ¡£
Ä£Ä⺯ÊýÖØÔØ
Óà arguments ¶ÔÏóÅжϴ«µÝ¸øº¯ÊýµÄ²ÎÊý¸öÊý£¬¼´¿ÉÄ£Ä⺯ÊýÖØÔØ£º
function doAdd() { if(arguments.length == 1) { alert(arguments[0] + 5); } else if(arguments.length == 2) { alert(arguments[0] + arguments[1]); } } doAdd(10); //Êä³ö "15" doAdd(40, 20); //Êä³ö "60"
µ±Ö»ÓÐÒ»¸ö²ÎÊýʱ£¬doAdd() º¯Êý¸ø²ÎÊý¼Ó 5¡£Èç¹ûÓÐÁ½¸ö²ÎÊý£¬Ôò»á°ÑÁ½¸ö²ÎÊýÏà¼Ó£¬·µ»ØËüÃǵĺ͡£ËùÒÔ£¬doAdd(10) Êä³öµÄÊÇ "15"£¬¶ø doAdd(40, 20) Êä³öµÄÊÇ "60"¡£
ËäÈ»²»ÈçÖØÔØÄÇôºÃ£¬²»¹ýÒÑ×ãÒԱܿª ECMAScript µÄÕâÖÖÏÞÖÆ¡£