繁体   English   中英

Javascript全局函数设置局部变量

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

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM