不明白的arguments

function bindMethod(o,f)
{
   var args=arguments;
   return function(){
          return f.apply(o,args);
   };
}
var a="hello";
function foo(name)
{
   document.write(typeof name+"<br/>");
   n=name || "haha";
   return n.toUpperCase();
}
var change=bindMethod(a,foo,"jj")();
document.write(change+"<br/>");

输出为:

string
HELLO

明明传过来的是数组类型,怎么会成为string类型呢?

知道问题了,传给方法foo的是以数组形式的参数,即假设foo(n1,n2,n3,...)n1对应args[0],n2对应args[1],...

原文地址:https://www.cnblogs.com/yellowsail/p/1754783.html