在JS中,传入的函数的参数个数可以与定义函数的个数不一致,那么对于传入的实参的引用,则是arguments对象。然而改对象在严格模式和非严格模式下是由区分的:
1 在严格模式下arguments作为了一个保留字,那么如果在定义arguments相关的变量和函数,则会报语法错误。
2 arguments在严格模式下属于传入的实参对象,并且是不可变的,即不可在函数内部通过arguments来修改实参值。
如:
function test1(a){
“use strict”;
arguments[0]=34;
console.log(a);
}
test1(23),则函数的输出结果为23.
3 禁止使用arguments.callee,caller,在函数内部不能通过这种方式获取自己的引用了
时间: 2024-11-02 14:09:30