运行一次后,您可以在javascript函数中更改语句吗?

时间:2018-05-10 06:20:47

标签: javascript

我很难搞清楚这一点。我喜欢xxp.run.pause();被xxp.run.play()取代;在下面的初始代码由用户执行一次之后。我试过创建一个闭包,但我不确定我是否正确设置了它。任何帮助将非常感谢。

doSkip: function() {
    XXP.run.removeListener('canper', XXP.Skip);
    XXP.run.currentTime = XXP.skipTo;
        XXP.run.pause(); // this is what I would like to change
    }

2 个答案:

答案 0 :(得分:1)

您可以在某处设置一个标记,用于记录之前是否已调用doSkip函数:

var hasSkip = false;

doSkip: function() {
    XXP.run.removeListener('canper', XXP.Skip);
    XXP.run.currentTime = XXP.skipTo;
    if (!hasSkip) {
        XXP.run.pause();
        hasSkip = true;
    }
    else {
        XXP.run.play();
    }
}

答案 1 :(得分:1)

您可以使用持久变量将函数包装在IIFE中,该变量检查它是否已暂停。这比在其他地方使用单独的变量更有优势,因为hasPausedOnce功能只需要doSkip - 不需要填充外部范围(可能让代码的读者担心是否{{1}将在其他地方改变)

hasPausedOnce