为什么返回“ 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 - Javascript全局函数设置局部变量,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/5570093/

10-12 12:31
查看更多