【发布时间】:2021-10-19 10:05:21
【问题描述】:
我有一个变量,它的值部分是根据另一个变量定义的。我想更改该变量的值,以便初始变量也发生更改。但这不会发生。看第二行:
var offset = 0;
var message = "the number is " + offset;
如果我修改offset,那么message 不会改变:
console.log(message); // This says "the number is 0".
offset += 20; // `offset` is changed to `20`.
console.log(message); // The message is still "the number is 0".
message,在这种情况下,将被称为“反应性”变量。
为什么它不起作用,我将如何解决它?
【问题讨论】:
-
这不是变量在我所知道的任何语言中的工作方式。
-
它不起作用,因为 JavaScript 中的变量(就像在大多数语言中一样)使用急切赋值而不是惰性赋值。为了实现你想要的,你可能需要将消息构造为一个函数。
-
未定义,已构建。您有一个变量,其值部分是 built 与另一个变量。如何解决?使用新值再次构建
message。而且因为一遍又一遍地编写相同的代码很烦人,所以把它放在一个 (template) 函数中。
标签: javascript variables