我了解javascript中的三元表达式。但是我不知道如何使这段代码更短。
if (x == false) {
x = true;
cancelAnimationFrame(BI.req);
}
else {
x = false;
BI.req = requestAnimationFrame(BI.fn.animate);
}
我想我可以创建两个单独的函数,并将它们与三元表达式一起使用。像这样:
function cancel() {
x = true;
cancelAnimationFrame(BI.req);
}
function request() {
x = false;
BI.req = requestAnimationFrame(BI.fn.animate);
}
x == false ? cancel() : request();
但是,这并不像我真的在简化我的代码。任何建议将不胜感激。
答案 0 :(得分:5)
您可以使用三元函数。并使用X1 Y4 A T
运算符设置!
x
或更短
x ? BI.req = requestAnimationFrame(BI.fn.animate) : cancelAnimationFrame(BI.req)
x = !x
问题是关于较短的代码,所以我回答了这个问题。否则,您自己的代码片段就可以了,或者考虑使用Nina Answers,因为这两行是完全不可读的。
您也不应该那样使用三元运算符。每当有两个或在任何块中移动表达式时,请勿使用三元运算符代替(x = !x) ? cancelAnimationFrame(BI.req) : BI.req = requestAnimationFrame(BI.fn.animate)
。
答案 1 :(得分:4)
您可以通过将作业移至最底部并使用肯定的检查来将其缩短一点。
if (x) {
BI.req = requestAnimationFrame(BI.fn.animate);
} else {
cancelAnimationFrame(BI.req);
}
x = !x;