满足条件后的双重动作

时间:2015-04-13 23:57:57

标签: javascript

我必须在现有代码中添加一行,但我不确定这是否正确。

这是现有代码

if (window.total_time <= window.cutOffTime) {
    tos = TrackingLogTime(tos.split(":").reverse());
    ga("send", "event", "Time", "Log", tos)
} else {
    window.clearInterval(window.stIntervalObj)
}

我需要添加此操作

ga("newTracker.send", "event", "Time", "Log", tos)

是否可以像这样做

if (window.total_time <= window.cutOffTime) {
    tos = TrackingLogTime(tos.split(":").reverse());
    ga("send", "event", "Time", "Log", tos) && ga("newTracker.send", "event", "Time", "Log", tos)
} else {
    window.clearInterval(window.stIntervalObj)
}

3 个答案:

答案 0 :(得分:2)

只需将新函数调用添加为单独的语句:

if (window.total_time <= window.cutOffTime) {
    tos = TrackingLogTime(tos.split(":").reverse());
    ga("send", "event", "Time", "Log", tos);
    ga("newTracker.send", "event", "Time", "Log", tos);
} else {
    window.clearInterval(window.stIntervalObj);
}

答案 1 :(得分:1)

您可以在上一行之后调用代码行:

if (window.total_time <= window.cutOffTime) {
    tos = TrackingLogTime(tos.split(":").reverse());
    ga("send", "event", "Time", "Log", tos);
    ga("newTracker.send", "event", "Time", "Log", tos);
} else {
    window.clearInterval(window.stIntervalObj);
}

运算符&&实际上用于在if语句中“组合”两个布尔值,例如:

var name = prompt("What is your name? ");
if(name[0] == "A" && name[1] == "J"){
    alert("Hello A.J.!");
}else{
  alert("You are not A.J.");
  }

答案 2 :(得分:0)

要回答你的问题,是的,这是可能的,但我不确定它是否能达到预期效果。它将执行对ga()函数的第一次调用。如果从中返回的值可以被评估为false,那么它将不会执行对ga()函数的第二次调用。如果第一个返回一个可以计算为true的值,那么第二个也将被执行。这是&amp;&amp; amp;的短路。运营商发挥作用。如果第一次调用的返回值为false,则整个语句不可能为真,因此它会停止对它进行评估。

如果您希望始终执行两个调用,那么最好的方法是将它们作为单独的语句,正如其他答案所建议的那样。