當(dāng)前位置:
首頁(yè) >
前端技术
> javascript
>内容正文
javascript
JS入门之arguments对象
生活随笔
收集整理的這篇文章主要介紹了
JS入门之arguments对象
小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
??
每天一對(duì)象,JS天天見,今天我們來看看arguments對(duì)象及屬性。arguments對(duì)象不能顯式創(chuàng)建,arguments對(duì)象只有函數(shù)開始時(shí)才可用。函數(shù)的?arguments?對(duì)象并不是一個(gè)數(shù)組,訪問單個(gè)參數(shù)的方式與訪問數(shù)組元素的方式相同。索引?n?實(shí)際上是?arguments?對(duì)象的?0…n?屬性的其中一個(gè)參數(shù)。
??下面的示例演示了?arguments?對(duì)象的用法,arguments對(duì)象和Function是分不開的。
?1function?ArgTest(a,?b){
?2???var?i,?s?=?"The?ArgTest?function?expected?";
?3???var?numargs?=?arguments.length;?????//?獲取被傳遞參數(shù)的數(shù)值。
?4???var?expargs?=?ArgTest.length;???????//?獲取期望參數(shù)的數(shù)值。
?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++){??????//?獲取參數(shù)內(nèi)容。
15???s?+=?"??Arg?"?+?i?+?"?=?"?+?arguments[i]?+?"\n";
16???}
17???return(s);??????????????????????????//?返回參數(shù)列表。
18}
?? 以上是arguments對(duì)象,由于和Function對(duì)象緊密地聯(lián)系在一起。也就是說每一個(gè)函數(shù)都有自己的argument屬性。下面我們來看看argument屬性:為當(dāng)前執(zhí)行的function?對(duì)象返回一個(gè)arguments?對(duì)象,function 參數(shù)是當(dāng)前執(zhí)行函數(shù)的名稱,可以省略。
?? 通過?arguments?屬性(相對(duì)于Function來說),函數(shù)可以處理可變數(shù)量的參數(shù)。arguments?對(duì)象的?length?屬性包含了傳遞給函數(shù)的參數(shù)的數(shù)目。對(duì)于arguments?對(duì)象所包含的單個(gè)參數(shù),其訪問方法與數(shù)組中所包含的參數(shù)的訪問方法相同。請(qǐng)看下面的例子:
?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}
?? 我們知道每一個(gè)對(duì)象都有自己的屬性,arguments對(duì)象也不例外,首先arguments的訪問猶如Array對(duì)象一樣,用0到arguments.length-1來枚舉每一個(gè)元素。下面我們來看看callee屬性,返回正被執(zhí)行的? Function?對(duì)象,也就是所指定的? Function?對(duì)象的正文。 callee?屬性是? arguments?對(duì)象的一個(gè)成員,僅當(dāng)相關(guān)函數(shù)正在執(zhí)行時(shí)才可用。 callee?屬性的初始值就是正被執(zhí)行的? Function?對(duì)象,這允許匿名的 遞歸函數(shù)。
1function?factorial(n){
2??if?(n?<=?0)
3??return?1;
4??else
5????return?n?*?arguments.callee(n?-?1)
6}
7print(factorial(3));
8 ??
? 到這里基本上把a(bǔ)rguments對(duì)象給講完了,不知還有其他的東西嗎?其實(shí)很多東西我們都已經(jīng)很熟悉了,除了上述的callee屬性外,其他的我們都時(shí)不時(shí)在應(yīng)用他們。OK,今天的對(duì)象學(xué)習(xí)就到這里了,明天要看的對(duì)象將是Boolean對(duì)象。
??下面的示例演示了?arguments?對(duì)象的用法,arguments對(duì)象和Function是分不開的。
?1function?ArgTest(a,?b){
?2???var?i,?s?=?"The?ArgTest?function?expected?";
?3???var?numargs?=?arguments.length;?????//?獲取被傳遞參數(shù)的數(shù)值。
?4???var?expargs?=?ArgTest.length;???????//?獲取期望參數(shù)的數(shù)值。
?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++){??????//?獲取參數(shù)內(nèi)容。
15???s?+=?"??Arg?"?+?i?+?"?=?"?+?arguments[i]?+?"\n";
16???}
17???return(s);??????????????????????????//?返回參數(shù)列表。
18}
?? 以上是arguments對(duì)象,由于和Function對(duì)象緊密地聯(lián)系在一起。也就是說每一個(gè)函數(shù)都有自己的argument屬性。下面我們來看看argument屬性:為當(dāng)前執(zhí)行的function?對(duì)象返回一個(gè)arguments?對(duì)象,function 參數(shù)是當(dāng)前執(zhí)行函數(shù)的名稱,可以省略。
?? 通過?arguments?屬性(相對(duì)于Function來說),函數(shù)可以處理可變數(shù)量的參數(shù)。arguments?對(duì)象的?length?屬性包含了傳遞給函數(shù)的參數(shù)的數(shù)目。對(duì)于arguments?對(duì)象所包含的單個(gè)參數(shù),其訪問方法與數(shù)組中所包含的參數(shù)的訪問方法相同。請(qǐng)看下面的例子:
?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}
?? 我們知道每一個(gè)對(duì)象都有自己的屬性,arguments對(duì)象也不例外,首先arguments的訪問猶如Array對(duì)象一樣,用0到arguments.length-1來枚舉每一個(gè)元素。下面我們來看看callee屬性,返回正被執(zhí)行的? Function?對(duì)象,也就是所指定的? Function?對(duì)象的正文。 callee?屬性是? arguments?對(duì)象的一個(gè)成員,僅當(dāng)相關(guān)函數(shù)正在執(zhí)行時(shí)才可用。 callee?屬性的初始值就是正被執(zhí)行的? Function?對(duì)象,這允許匿名的 遞歸函數(shù)。
1function?factorial(n){
2??if?(n?<=?0)
3??return?1;
4??else
5????return?n?*?arguments.callee(n?-?1)
6}
7print(factorial(3));
8 ??
? 到這里基本上把a(bǔ)rguments對(duì)象給講完了,不知還有其他的東西嗎?其實(shí)很多東西我們都已經(jīng)很熟悉了,除了上述的callee屬性外,其他的我們都時(shí)不時(shí)在應(yīng)用他們。OK,今天的對(duì)象學(xué)習(xí)就到這里了,明天要看的對(duì)象將是Boolean對(duì)象。
總結(jié)
以上是生活随笔為你收集整理的JS入门之arguments对象的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: js中对函数设置默认参数值的3种方法
- 下一篇: JS 可变参数