JS函数的参数对象arguments在严格模式下的限制

在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,在函数内部不能通过这种方式获取自己的引用了

posted @ 2015-04-20 14:00  aqhjh  阅读(1773)  评论(0编辑  收藏  举报