[英]Javascript global function setting local variable
为什么返回“ foo”而不是“ foobar”? 我需要函数g修改(非全局)var v,但函数g是全局函数。 谢谢。
f();
function f() {
var v = 'foo';
g(v);
alert(v);
}
function g(v) {
v = v+'bar';
return v;
}
因为您从g(v)调用返回了v,但没有重新分配v
f();
function f() {
var v = 'foo';
v = g(v); //you need to assign what is returned
alert(v);
}
function g(v) {
v = v+'bar';
return v;
}
因为javascript仅按值起作用,而不按引用起作用。 参见John Hartsock的答案。
在JavaScript
原始
的所有参数(该字符串参数克,在这种情况下)是通过按值而不是传递通过引用,这意味着v
您正在使用的函数g(V)是的副本v
在功能f中。
Edit:
所有参数都是通过值传递的,而不仅仅是原语。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.