为什么参数在函数外保留其值?
这个问题在这里已经有了答案:
这种怪异行为的解释是什么?
因为在Javascript中,变量是函数作用域。
您从未将a
和b
传递给myTest
方法。 你通过了8和5,所以a
myTest
签名一部分的a
和b
得到了新的范围。 a
变成了8, b
在myTest
里变成了5。
myTest
的a
和b
值不会在外部使用,因为它们的作用域限于myTest。
在你的函数里面,你有一个本地a
参数。 因此,如果您对该值做出任何更改,它们将不会反映您全局定义的a
。 既然你没有在函数内创建一个c
变量或参数,你将会改变全局c
值。
var c = 0; // Global c
var a = 0; // Global a
var b = myTest(8, 5); // Store the value of the local a from the function return.
function myTest(a,b) {
console.log(a); // This a is a local reference (8)
a++; // Increment local a
c++; // Increment global c
console.log(a); // Print local a (9)
return a; // Return local a
}
console.log(a); // Print global a (0)
console.log(c); // Print global c (1)
console.log(b); // Print returned value (9)
链接地址: http://www.djcxy.com/p/40835.html
上一篇: Why don't parameters retain their value outside of a function?