执行返回true / false的3个函数,如果返回true则执行某些操作,否则不会发生短路

时间:2011-09-28 16:37:46

标签: javascript if-statement logical-operators

我有3个JS函数a()b()c()

我想执行所有3并检查是否所有3都返回true然后我想调用函数yeah()或者调用函数boo()

我可以使用&&但它会短路,如果第一个或第二个返回false,则可能无法执行所有3个函数

所以

      if(a() && b() && c()) { yeah(); } else { boo(); }

不会工作!

你能建议一个更好的单行代码吗?

2 个答案:

答案 0 :(得分:5)

如果您想要单行,也可以使用&代替&&

if(a() & b() & c()) { yeah(); } else { boo(); }

如果您想确切知道返回多少函数,您可以这样做:

if(a() + b() + c() == 3) { yeah(); } else { boo(); }

示例:http://jsfiddle.net/DQkpM/1/

答案 1 :(得分:1)

A& b& c会做的伎俩。它将执行所有三个功能。