我正在阅读JavaScript简洁地(来自Syncfusion的免费电子书),并且有一个标题为“重定义函数参数”的部分,我不太明白。想知道是否有人可以解释发生了什么事。“通过JavaScript重新定义函数参数”
var foo = false;
var bar = false;
var myFunction = function(foo, bar) {
arguments[0] = true;
bar = true;
console.log(arguments[0], bar);
}
myFunction();
我是函数的参数,不管他们是所谓的印象,在局部范围的变量 - 即使参数名称也是全局范围变量的名称。所以,上面的代码,而不是'定义'的功能参数定义的参数。因为如果在调用该功能后,如果将bar
记录到控制台,则它会记录false
。所以,是的,我在这里有点困惑。这本书是错误的还是我对参数的名称和变量感到困惑?
可能重复的[JavaScript的变量范围是什么?](http://stackoverflow.com/questions/500431/what-is-the-scope-of-variables-in-javascript) – Hacketo
添加一个控制台line before:'var myFunction = function(foo,bar){ console.log(foo,bar); arguments [0] = true; bar = true; console.log(arguments [0],bar); '你看到了什么? – epascarello
我不明白你的问题。你说*是书本错误*,但你不告诉我们这本书是什么说的。 – 2016-02-26 14:04:36