通过一个例子来理解下arguments与arguments.callee的具体区别: 代码如下: 复制代码 代码如下: <br /> function check(args){ <br /> var ac = args.length; <br /> var ex = args.callee.length; <br /> document.write("ac:" + ac + '<br>'); <br /> document.write("ex:" + ex + '<br>'); <br /> if (ac != ex) { <br /> document.write("wrong number of arguments: expected: " + ex + "; actually passed" + ac + '<br>'); <br /> } <br /> } <br /> function f(x, y, z) { <br /> check(arguments); <br /> document.write(x + y + z); <br /> } <br /> 调用方法: 复制代码 代码如下: 运行后的结果为: 复制代码 代码如下: ac:2 ex:3 wrong number of arguments: expected: 3; actually passed2 NaN 我的理解: arguments即调用对象,就是调用这个方法的对象 arguments.callee即当前对象,实际上就是返回当前执行的函数对象 通过这个例子,可以看出 arguments实际上是指函数“f(1,2)” argument.callee实际上是指"function f(x,y,z){}"