我有这个变量赋值:
var a = 2 + 2;
值为a
4.但我不希望它立即评估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; }
如果a
在分配后立即解析,则会出现未定义的变量错误,因为c
并且d
未定义.我想延迟对条件的评估,直到我想要使用它(在所说的那一行evaluate B here
).我怎么做?
这个问题只是推迟对条件的评估,直到它被使用为止
好的.有些人已经在评论中提到了这一点.在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();