2 lug0701 lug0701 于 2016.09.10 14:33 提问

javaScript中function的arguments数组问题

JavaScript中方法的参数是数组么。比如我用其他方法生成一个数组【10,20,30】并向sum()的括号中传入,检测sum()中的arguments数组只返回第一个数10,检测arguments数组长度也为1,是为什么
注:sum()为自建方法

1个回答

showbo
showbo   Ds   Rxr 2016.09.10 20:47
已采纳

Arguments是个类似数组但不是数组的对象,说他类似数组是因为其具备数组相同的访问性质及方式,能够由arguments[n]来访问对应的单个参数的值,并拥有数组长度属性length。还有就是arguments对象存储的是实际 传递给函数的参数,而不局限于函数声明所定义的参数列表,而且不能显式创建 arguments 对象。

参考:javascript函数参数arguments,callee,caller

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!
其他相关推荐
js中arguments理解
arguments
温故而知新: JavaScript arguments 对象详解
温故而知新: JavaScript arguments 对象详解
arguments[0]()做闭包时的的this对象
var length = 10; function fn(){ alert(this.length) } var obj = { length: 5, method: function(fn) { arguments[0]() } } obj.method(fn) 这段代码中的arguments[0]()是第一个参数?带一对小括号是什么意思
Array.prototype.slice.call()详解及转换数组的方法
在翻看以前公司留下的项目时,看到一段代码。 var $show=$imgList.filter(':visible'); var showPics=Array.prototype.slice.call('$show',0); 其中第二行虽然能猜出大意,但也有一些费解,不知道这样的用意为何。于是在网上搜了一下,发现关于这个用法讲解的还挺多,选其中一篇较为详细的,转存来以备不时之需。在此感谢小平果
理解 this.initialize.apply ( this, arguments )
一、代码片段: 1、Class定义如下 var Class = { create: function() { return function() { this.initialize.apply(this, arguments); } } } 2、Class使用方式: var SimpleDrag = Class.create(); SimpleDrag.
js之arguments详解
js之arguments详解
【JavaScript】函数中的arguments对象与Rest参数
arguments  JavaScript函数可以使用任意数量的参数(允许未知数量的函数参数)。在ES6之前,JavaScript有一个变量来访问这些未知或可变数目的参数,这是一个类似数组的对象,并非一个数组,称为arguments,与传递给函数的参数相对应。传递给JavaScript函数的所有参数都可以使用arguments对象来引用。      在上面的函数中,num1和num2是两个参数
将arguments属性转换成Array的几种方法
原文:http://rubyqiu.php.blog.163.com/blog/static/8614152320098211576782/ 通常将类数组(Array-Like)arguments转换成数组可以采用以下的方法: Array.apply(null,arguments);  Array.prototype.slice.call(arguments,0);  Array.pr
JavaScript 参数 arguments深入了解以及javascript内置数据类型的讨论
在JavaScript的函数中,参数会保存在一个arguments对象中,而写函数的时候声明的函数参数我感觉就是个赋值语句,另外也可以提高可读性。 >function test(){return arguments} undefined >test(1) [1] >test(1,2) [1, 2] >typeof test() "object" >test('a','b',12) ["a", "
arguments转换为数组
arguments转换为数组 function sum(a,b) { console.log(arguments);//[1, 2] //检验是否是数组1 //arguments.push(123); //arguments.push is not a function //检验是否是数组2 console.log(arguments instanceof Array);//fal