【发布时间】:2017-05-26 08:43:33
【问题描述】:
我有这个变量赋值:
var a = 2 + 2;
a 的值将是 4。但我不希望它立即计算 2 + 2 表达式。如何使变量保持为 2 + 2 并且在程序到达我命令 a 进行评估的行之前不更改为 4?
2 + 2 不是一个很好的例子来说明我为什么要这样做,所以这里有一个非常简单的例子,说明我需要一个变量在我想要它之前不计算:
var a = (c > d); // and stay as an unevaluated condition
function b() {
var c = 5;
var d = 3;
// evaluate B here
return b;
}
如果a一被赋值就被解析,会出现未定义变量错误,因为c和d没有定义。我想推迟对条件的评估,直到我想使用它(在evaluate B here 行)。我该怎么做?
【问题讨论】:
-
a 应该是一个函数,而不是一个变量,如果你想延迟评估
-
function a() = { return c > d; };,然后是if (a()) ...虽然如果 a 没有在其他任何地方使用,为什么还要在函数之外进行赋值...? -
你需要全局变量
a吗?顺便说一句,c和d没有在a的范围内声明。 -
请不要大幅更改您的帖子。见How much change to the question is too much?
标签: javascript variables if-statement global-variables conditional-statements