[js物件]JS入門之arguments物件
每天一物件,JS天天見,今天我們來看看arguments物件及屬性。arguments物件不能顯式建立,arguments物件只有函式開始時才可用。函式的 arguments 物件並不是一個陣列,訪問單個引數的方式與訪問陣列元素的方式相同。索引 n 實際上是 arguments 物件的 0…n 屬性的其中一個引數。
下面的示例演示了 arguments 物件的用法,arguments物件和Function是分不開的。
1function ArgTest(a, b){
2 var i, s = "The ArgTest function expected ";
3 var numargs = arguments.length; // 獲取被傳遞引數的數值。
4 var expargs = ArgTest.length; // 獲取期望引數的數值。
5 if (expargs < 2)
6 s += expargs + " argument. ";
7 else
8 s += expargs + " arguments. ";
9 if (numargs < 2)
10 s += numargs + " was passed.";
11 else
12 s += numargs + " were passed.";
13 s += "/n/n"
14 for (i =0 ; i < numargs; i++){ // 獲取引數內容。
15 s += " Arg " + i + " = " + arguments[i] + "/n";
16 }
17 return(s); // 返回引數列表。
18}
2 var i, s = "The ArgTest function expected ";
3 var numargs = arguments.length; // 獲取被傳遞引數的數值。
4 var expargs = ArgTest.length; // 獲取期望引數的數值。
5 if (expargs < 2)
6 s += expargs + " argument. ";
7 else
8 s += expargs + " arguments. ";
9 if (numargs < 2)
10 s += numargs + " was passed.";
11 else
12 s += numargs + " were passed.";
13 s += "/n/n"
14 for (i =0 ; i < numargs; i++){ // 獲取引數內容。
15 s += " Arg " + i + " = " + arguments[i] + "/n";
16 }
17 return(s); // 返回引數列表。
18}
以上是arguments物件,由於和Function物件緊密地聯絡在一起。也就是說每一個函式都有自己的argument屬性。下面我們來看看argument屬性:為當前執行的 function 物件返回一個arguments 物件,function 引數是當前執行函式的名稱,可以省略。
通過 arguments 屬性(相對於Function來說),函式可以處理可變數量的引數。arguments 物件的 length 屬性包含了傳遞給函式的引數的數目。對於arguments 物件所包含的單個引數,其訪問方法與陣列中所包含的引數的訪問方法相同。請看下面的例子:
1function ArgTest(){
2 var i, s, numargs = arguments.length;
3 s = numargs;
4 if (numargs < 2)
5 s += " argument was passed to ArgTest. It was ";
6 else
7 s += " arguments were passed to ArgTest. They were " ;
8 for (i = 0; i < numargs; i++)
9 {
10 s += arguments[i] + " ";
11 }
12 return(s);
13}
2 var i, s, numargs = arguments.length;
3 s = numargs;
4 if (numargs < 2)
5 s += " argument was passed to ArgTest. It was ";
6 else
7 s += " arguments were passed to ArgTest. They were " ;
8 for (i = 0; i < numargs; i++)
9 {
10 s += arguments[i] + " ";
11 }
12 return(s);
13}
我們知道每一個物件都有自己的屬性,arguments物件也不例外,首先arguments的訪問猶如Array物件一樣,用0到arguments.length-1來列舉每一個元素。下面我們來看看callee屬性,返回正被執行的 Function 物件,也就是所指定的 Function 物件的正文。callee 屬性是 arguments 物件的一個成員,僅當相關函式正在執行時才可用。callee 屬性的初始值就是正被執行的 Function 物件,這允許匿名的遞迴函式。
1function factorial(n){
2 if (n <= 0)
3 return 1;
4 else
5 return n * arguments.callee(n - 1)
6}
7print(factorial(3));
8
2 if (n <= 0)
3 return 1;
4 else
5 return n * arguments.callee(n - 1)
6}
7print(factorial(3));
8
到這裡基本上把arguments物件給講完了,不知還有其他的東西嗎?其實很多東西我們都已經很熟悉了,除了上述的callee屬性外,其他的我們都時不時在應用他們。OK,今天的物件學習就到這裡了,明天要看的物件將是Boolean物件。
來源:http://www.cnblogs.com/xdotnet/archive/2007/04/11/javascript_object_arguments.html
相關文章
- [js物件]JS入門之Array物件JS物件
- js函式,arguments物件JS函式物件
- js arguments物件說明JS物件
- 深入學習js之——類陣列物件與arguments #11JS陣列物件
- JS基礎入門篇(十八)—日期物件JS物件
- js-arguments 函式引數物件詳解JS函式物件
- fastjson: json物件,json物件陣列,javabean物件,json字串之間的相互轉化ASTJSON物件陣列JavaBean字串
- JS 總結之物件JS物件
- JSP開發入門(四)----JSP的內部物件 (轉)JS物件
- JS物件之封裝(二)JS物件封裝
- js之物件深淺克隆JS物件
- JS物件JS物件
- JavaScript arguments 物件JavaScript物件
- js jquery 列印物件;json 物件轉字串jQuery物件JSON字串
- JS json字串轉物件、物件轉字串JSON字串物件
- JS基礎入門篇(三十六)—物件導向( 三 )JS物件
- JS基礎入門篇(二十)—事件物件以及案例(二)JS事件物件
- 小陳學JS js內建物件 Date物件JS物件
- JavaScript 之 物件/JSON/陣列JavaScript物件JSON陣列
- JS筆記—— 物件 (原型物件)JS筆記物件原型
- JS promise物件JSPromise物件
- JSON 物件JSON物件
- JS 建立物件JS物件
- Js DOM物件JS物件
- js建立物件JS物件
- json字串和js物件之間相互轉換JSON字串物件
- js物件轉json字串物件JSON字串
- JS中的JSON物件JSON物件
- Js物件導向(1): 理解物件JS物件
- jsp隱式物件-Servlet物件JS物件Servlet
- JS_建立物件+呼叫物件方法JS物件
- JS知識總結之BOM物件JS物件
- JavaScript 深入之類陣列物件與 argumentsJavaScript陣列物件
- 一個人就需要物件之js中八種建立物件方式物件JS
- JS正規表示式從入門到入土(10)—— 字串物件方法JS字串物件
- JS-建立物件JS物件
- JS物件導向JS物件
- JSON 物件——05JSON物件