Javascript全局函数设置局部变量

thu*_*gsb 1 javascript global-variables

为什么这会返回'foo',而不是'foobar'?我需要函数g来修改(非全局)var v,但函数g是一个全局函数.谢谢.

f();

function f() {
  var v = 'foo';
  g(v);
  alert(v);
}

function g(v) {
  v = v+'bar';
  return v;
}
Run Code Online (Sandbox Code Playgroud)

Joh*_*ock 8

因为您从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;
}
Run Code Online (Sandbox Code Playgroud)