首页 > arguments的读写问题。

arguments的读写问题。


现在还是比较好理解的console.log全部是2,但是下面是比较诡异的:


这个时候arguments就不可以写了 全部是1了,这是为啥啊?


应该是浏览器优化后产生的效果...

可参考下面这篇文章[译] JavaScript 性能优化杀手 中对 arguments 这里的介绍.

http://www.w3ctech.com/topic/1474#3-arguments-

f1 中不使用 arguments 访问参数的时候, x 应该只是得到了值 1, 所以后面的代码会输出的是 1.
当有使用 arguments 的时候, 那么参数名和 arguments 之间就有关系了, 所以在f2中改变之后, x 也跟着变了.


IE6这种比较旧的浏览器, 运行上面的代码的效果:

因为IE6没有对代码进行优化, 忠实的保持着 参数arguments 之间的联系, 所以在IE6下的效果是都会跟着变.

【热门文章】
【热门文章】