JavaScript Arguments对象
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; // arguments[0]: 33, x: 33
return [x, y, z];
}
foo(1);
现在还没有评论
留下您的大名