JavaScript Arguments对象

2011-11-23 No Comments

Arguments对象是在函数执行时期动态创建的,它是一个类似数组的对象,可通过索引获取成员,拥有length属性。 arguments.length 表示实参总数,与此对应的行参总数可通过funcName.length获得。 arguments.callee 是对函数本身的引用,在ES5中严格模式下禁止使用。参考callee 。 把arguments转换成数组[].slice.call(arguments, 0)。 function foo() { var args = [].slice.call(arguments, 0); console.log(args); // [1, 2, 3] } foo(1, 2, 3); arguments对象是不能被delete的。 arguments与实参之间是引用关系。 实参是无法被delete的,而arguments的成员可以delete,但是delete之后,实参和arguments成员的引用关系也就丢失了。 function foo(x) { delete arguments; // false  arguments[0] = 11; // arguments[0]: 11, x: 11 x = 22; // arguments[0]: 22, x: 22 delete arguments[0]; // delete 之后丢失引用 x = 33 » » »阅读更多