课程
/前端开发
/JavaScript
/JavaScript深入浅出
foo(x,y,z){'use strict';arguments[0]=10;console.log(x); }foo(1,2);输出x的值不是应该为1吗?课件上的输出为10是为什么呢?
2016-12-06
源自:JavaScript深入浅出 7-4
正在回答
因为argumnets[0] 就是第一个参数,即x
ZTON
请问你是3426834 提问者 回复 ZTON
在严格模式下,arguments变成了静态副本,和传入的参数没有绑定关系了,但是如果传入的参数是对象的话,修改arguments属性是会对传入参数属性会影响。比如:
'use strict';!function(a){arguments[0].x = 100; console.log(a.x);//100 因为在严格模式下,如果传入的参数是对象的话,修改arguments属性是会对传入参数属性会影响的}(x:1);
慕码人1183263
举报
由浅入深学习JS语言特性,且解析JS常见误区,从入门到掌握
4 回答初学JavaScript用DW没问题吧.
3 回答JavaScript
1 回答javascript
1 回答forEach参数问题
2 回答JavaScript编辑器