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', '!'])) ;
请教一下 ,js的内置属性arguments 为什么我用“fn.arguments.length”显示的长度为null,但是前面的“fn.length”已经显示是正确的长度了,不知道是什么原因
arguments 是每次调用的参数列表
为什么我调用的时候,获取不到这个参数的列表的 原因在什么地方?
@天空的天: 只能在被调用的函数里使用
@长蘑菇星人: 那如果 我想把arr数组的参数 传到fn中当做参数,该怎么做呢?
@天空的天: fn.apply(this,arr);
@长蘑菇星人: O(∩_∩)O谢谢了
好萌的代码。
楼上已经说了fn.apply(this,arr);就能达到目的了。
顺便再说一句,fn.length是形参的个数。arguments.length是实参的个数。arguments只能在运行时访问到。
确实很懵懂啊,O(∩_∩)O哈哈~谢谢指教