javascript - 为什么调用函数增加全局变量后它仍然保持不变?

标签 javascript

为什么调用increment函数后全局变量还是5?预先感谢您的任何帮助。

<script>
function increment(val) {
  val+=1;
}

var val = 5;

increment(val); 

alert(val);

</script>

最佳答案

function increment(val) {
  val+=1;
}

声明一个函数的本地变量val。您更改的是本地变量,而不是外部变量。与

相同
function increment(val2) {
  val2+=1;
}

你可以这样做:

function increment(val) {
  return val+1;
}
var val=5;
val = increment(val); 

function increment(holder, varname) {
  holder[varname] = holder[varname]+1;
}
var val=5;
increment(window, 'val'); 

关于javascript - 为什么调用函数增加全局变量后它仍然保持不变?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15021606/

相关文章:

javascript - React js使用CSS自定义类型文件的输入

javascript - React - 使用 setState 更新状态中的对象数组

JavaScript 调试在 Visual Studio 2010 中不起作用

javascript - 如何从 AngularJS 输入中禁用我的复选框?

javascript - jQuery 加载缺少的参数

javascript - 从 AngularJS 客户端发布到 ASP.NET WebApi 服务器

javascript - 在没有任何操作的情况下重新加载,切换功能正在工作,但由于重新加载影响消失了

javascript - 指定哪个区域是日期排序

javascript - 如何解析并形成字符串以使用 Javascript 打开网页

javascript - Fancybox 不会加载内联内容