为什么这个js代码中的值没有改变?

这里的啤酒

我在看这个 javascript 代码:

var a = {i: 0};
var b = 0;

function change(a, b) {
  a.i++;
  b++;
}
change(a, b);

console.log(a, b);

您希望被记录: {i:1} 1 。它实际上返回:{i:1} 0? 为什么 b=0 而不是 b=1?

某些表演

因为b是一个参数inside change-inside changeb指的是局部变量,当局部变量被重新赋值时,对b外部没有影响

要么始终b称为全局变量:

var a = {i: 0};
var b = 0;

function change(a) {
  a.i++;
  b++;
}
change(a);

console.log(a, b);

或者b返回change,并将外部分配b给 的结果change

var a = {i: 0};
var b = 0;

function change(a, b) {
  a.i++;
  b++;
  return b;
}
b = change(a, b);

console.log(a, b);

(如果您需要返回并重新分配多个变量,请返回一个对象或数组:

var a = {i: 0};
var b = 0;
var c = 0;

function change(a, b, c) {
  a.i++;
  b++;
  c++;
  return { b, c };
}
({b, c} = change(a, b, c));

console.log(a, b, c);

)

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

为什么我的代码中的颜色值没有刷新?

为什么这个XPlot.Plotly代码没有编译>

为什么我的对象中的值没有改变?

为什么一个值改变但第二个值没有改变?

为什么这个while循环没有在下面的代码中结束?

为什么状态变量在此Swift代码的某些部分中没有改变?

为什么这个Ruby代码没有返回预期的答案?

为什么这个函数似乎没有返回任何值

为什么这个jquery代码没有执行?

为什么这个球拍代码没有终止?

为什么这个ruby代码没有引发异常?

为什么在 tensorflow 代码中没有改变训练模型的准确率?

为什么这个 JS 表单验证脚本没有触发?

为什么存储在我的 json 文件中的值没有改变?

为什么在 for.Each 中处理后数组中的值没有改变?

为什么程序没有在信号值改变时终止?

为什么我的代码中某些文本字段的背景颜色没有改变?

为什么这个缓冲通道没有在我的代码中阻塞?

为什么这里的值没有被函数改变?

为什么这个flutter代码应用程序中没有返回列表记录?

为什么这个简单的代码没有运行 if only var

为什么我的 NavigationBar 颜色在 Swift 中没有改变?

为什么输入值在父级中没有改变?

为什么这个父变量没有改变?

为什么我的代码在这个异步函数中没有等待输出?

我不明白为什么在这个给定的程序中 a 的值没有增加

为什么这个着色器变量没有改变?(dx12,hlsl)

为什么这个变量不能改变这个值?

为什么这个函数没有返回值?