首页 新闻 会员 周边

Js arguments属性

0
[已解决问题] 解决于 2015-07-08 17:53
 1  function argsAsArray(fn, arr) {
 2               //  fn.arguments=arr;
 3               // console.debug(fn.length);
 4                 console.debug(fn);
 5                 console.debug(fn.length);
 6                 console.debug(fn.arguments.length);
 7 
 8                 for(var i=0;i<arr.length;i++)
 9                 {
10                     fn.arguments[i]=arr[i];
11                 }
12             }
13            console.debug(argsAsArray(function (greeting, name, punctuation)
14            {return greeting + ', ' + name + (punctuation || '!');}, ['Hello', 'Ellie', '!'])) ;
View Code

请教一下 ,js的内置属性arguments 为什么我用“fn.arguments.length”显示的长度为null,但是前面的“fn.length”已经显示是正确的长度了,不知道是什么原因

天空的天的主页 天空的天 | 初学一级 | 园豆:192
提问于:2015-07-08 16:44
< >
分享
最佳答案
0

arguments 是每次调用的参数列表

奖励园豆:5
长蘑菇星人 | 小虾三级 |园豆:1832 | 2015-07-08 17:00

为什么我调用的时候,获取不到这个参数的列表的   原因在什么地方?

天空的天 | 园豆:192 (初学一级) | 2015-07-08 17:05

@天空的天: 只能在被调用的函数里使用

长蘑菇星人 | 园豆:1832 (小虾三级) | 2015-07-08 17:19

@长蘑菇星人: 那如果 我想把arr数组的参数 传到fn中当做参数,该怎么做呢?

天空的天 | 园豆:192 (初学一级) | 2015-07-08 17:23

@天空的天: fn.apply(this,arr);

长蘑菇星人 | 园豆:1832 (小虾三级) | 2015-07-08 17:26

@长蘑菇星人: O(∩_∩)O谢谢了

天空的天 | 园豆:192 (初学一级) | 2015-07-08 17:53
其他回答(1)
0

好萌的代码。

楼上已经说了fn.apply(this,arr);就能达到目的了。

顺便再说一句,fn.length是形参的个数。arguments.length是实参的个数。arguments只能在运行时访问到。

ThreeTree | 园豆:1490 (小虾三级) | 2015-07-08 17:43

确实很懵懂啊,O(∩_∩)O哈哈~谢谢指教

支持(0) 反对(0) 天空的天 | 园豆:192 (初学一级) | 2015-07-08 17:48
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册