问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

javascript里的arguments是什么意思??

发布网友 发布时间:2022-04-23 09:04

我来回答

4个回答

懂视网 时间:2022-04-20 12:19

一.在JavaScript中,arguments对象是比较特别的一个对象,实际上是当前函数的一个内置属性。arguments非常类似Array,但实际上又不是一个Array实例。可以通过如下代码得以证实(当然,实际上,在函数funcArg中,调用arguments是不必要写成funcArg.arguments,直接写arguments即可)。

Js代码

Array.prototype.testArg = "test"; 
function funcArg() { 
 alert(funcArg.arguments.testArg); 
 alert(funcArg.arguments[0]); 
} 
 
alert(new Array().testArg); // result: "test" 
funcArg(10);  // result: "undefined" "10"

二.arguments对象的长度是由实参个数而不是形参个数决定的。形参是函数内部重新开辟内存空间存储的变量,但是其与arguments对象内存空间并不重叠。对于arguments和值都存在的情况下,两者值是同步的,但是针对其中一个无值的情况下,对于此无值的情形值不会得以同步。如下代码可以得以验证。

Js代码

function f(a, b, c){ 
 alert(arguments.length); // result: "2" 
 a = 100; 
 alert(arguments[0]); // result: "100" 
 arguments[0] = "qqyumidi"; 
 alert(a);   // result: "qqyumidi" 
 alert(c);   // result: "undefined" 
 c = 2012; 
 alert(arguments[2]); // result: "undefined" 
} 
 
f(1, 2);

三.由JavaScript中函数的声明和调用特性,可以看出JavaScript中函数是不能重载的。

根据其他语言中重载的依据:"函数返回值不同或形参个数不同",我们可以得出上述结论:

第一:Javascript函数的声明是没有返回值类型这一说法的;

第二:JavaScript中形参的个数严格意义上来讲只是为了方便在函数中的变量操作,实际上实参已经存储在arguments对象中了。

另外,从JavaScript函数本身深入理解为什么JavaScript中函数是不能重载的:在JavaScript中,函数其实也是对象,函数名是关于函数的引用,或者说函数名本身就是变量。对于如下所示的函数声明与函数表达式,其实含以上是一样的(在不考虑函数声明与函数表达式区别的前提下),非常有利于我们理解JavaScript中函数是不能重载的这一特性。

Js代码

function f(a){ 
 return a + 10; 
} 
 
function f(a){ 
 return a - 10; 
} 
 
// 在不考虑函数声明与函数表达式区别的前提下,其等价于如下 
 
var f = function(a){ 
 return a + 10; 
} 
 
var f = function(a){ 
 return a - 10; 
}

四.arguments对象中有一个非常有用的属性:callee。arguments.callee返回此arguments对象所在的当前函数引用。在使用函数递归调用时推荐使用arguments.callee代替函数名本身。

如下:

Js代码

function count(a){ 
 if(a==1){ 
 return 1; 
 } 
 return a + arguments.callee(--a); 
} 
 
var mm = count(10); 
alert(mm);

热心网友 时间:2022-04-20 09:27

arguments 是JavaScript里的一个内置对象,有的函数都有属于自己的一个arguments对象,它包括了函所要调用的参数。object对象。

比如:

function t(){
  alert(arguments[0]);//显示t函数的输入参数,这里是2
}
t('2');//调用函数,传入参数2

热心网友 时间:2022-04-20 10:45

这是function的隐含参数,类型是个类似数组的形式。


//比如你声明你个函数:
function callMe(){
    if( arguments.length > 0 ) {
        console.log( arguments[0] );
    }
}
//然后如此调用:
callMe( 'maybe' );
//arguments[0]即表示传入的第一个参数了。

热心网友 时间:2022-04-20 12:19

arguments是传给函数的参数,是个数组。1楼的例子已经很明确了。
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
麻烦懂行的大哥大姐帮我算一下,这个户型的建筑面试和套内面积,谢谢_百 ... ...起来了买个谁啊小弟不知道这些事麻烦大哥大姐指点迷津 刚毕业马上要到单位 很多事情不懂 请各位大哥大姐指点一二 急! 管理物料的系统选哪家? 白色的羽绒服和深色衣服叠放在一起被染上了色,用84也洗不掉,该怎么办... ...衣服叠放在一起 后背被染色了 不知道能用什么办法去掉 上网查了很多... ...结果被染了色,有什么办法可以洗掉。有知道的帮帮忙。谢谢... ...动漫),比如男主被人打死,女主也和别人跑了这种...朋友托我帮忙,我想... 羽绒服压皱了怎么弄平 羽绒服面料的压痕怎么去除 羽绒服有皱痕怎么去掉 编程中argument什么意思?一定要准确.. argument是什么意思中文 psv 1000 后壳区别 excel怎么把这张表的楼幢号稍微快一点的写出来呢? excel中如何把数字房号用公式变为几单元几号楼房间号码的 如何在EXCEL中输入房号,从三楼开始的详细如图 求助大神excel中如何有简便方法快速输入小区楼号单元号门牌号怎么用excel表示 excel怎么在一堆楼数据中间,插入没有的楼栋 excel中,怎样能快速从一行字里提取出/小区名称/楼幢/房号。 求助大神excel中如何有简便方法快速输入小区楼号单元号门牌号如下图 怎样用Excel快速做一栋楼的楼层及每层楼的户号,如图这样, 楼层少可以用手输入,楼层30多层的改怎样做。 excel表格怎么自动排序楼栋号,比如说101-101,101-102,101-201,101-202……哪位高手帮忙解决 EXCEL中一栋楼5个单元6层前边是楼号单元号房间号怎么在后边录入1-1-101? excel中如何将楼幢号,单元号,室号合并到一个单元格并用"-"链接 Excel表格,如何输入楼栋楼层,就能显示价格。 excel 表中,快速输入楼号, 如何在EXCEL中输入楼号 107—1—101,107—1—102,107—1—201,107—1 excel怎么快速填充有规律的楼栋号? 有没有可以下载歌曲伴奏的网站或软件啊? 如何下载伴奏,要mp3 格式的,直接可以拷U盘里的 英语parameter和argument作为参数的意思区别是什么? arguments什么意思 Argument是什么意思 《德语助手》德汉 java中args是什么意思? openn.arguments中 arguments是什么意思 在聊哲学话题的时候“arguments”通常是什么意思? this和arguments的意思 js中arguments是什么?怎样简单理解? argument在这里什么意思? argument是什么意思 JS中“arguments对象”是什么? 关于js中的组合继承,这里的arguments是什么意思 期货是t+0还是t+1 期货是T+1模式吗? 手机网购与商家争执如何找到小二介入? 股指期货是不是T+0的交易 期货的交易制度是T+0还是T+1 手机淘宝怎么联系淘小二? 期货t十0究竟是什么意思 期货交易是T+1还是T+0呢?