cli*_*ait -11 javascript variables if-statement global-variables conditional-statements
我有这个变量赋值:
var a = 2 + 2;
Run Code Online (Sandbox Code Playgroud)
值为a4.但我不希望它立即评估2 + 2表达式.如何使变量保持为,2 + 2而不是更改为4,直到程序到达我a要求评估的行?
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;
}
Run Code Online (Sandbox Code Playgroud)
如果a在分配后立即解析,则会出现未定义的变量错误,因为c并且d未定义.我想延迟对条件的评估,直到我想要使用它(在所说的那一行evaluate B here).我怎么做?
Lou*_*uis 22
这个问题只是推迟对条件的评估,直到它被使用为止
好的.有些人已经在评论中提到了这一点.在JavaScript中延迟计算的标准方法是使计算成为您在需要时调用的函数.易于实施,易于理解,没有惊喜.
在这里,我们推迟了对条件的评估,直到它被使用:
function a(c, d) {
return c > d;
}
function b() {
var c = 5;
var d = 3;
if (a(c, d)) {
alert("a");
return true;
} else {
alert("b");
return false;
}
}
b();
Run Code Online (Sandbox Code Playgroud)