[英]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.