运行 每次值变化时函数 Javascript

Run function each time value changes Javascript

我想记录滚动,但每次我 运行 这段代码我每秒都会获取值(或者按照间隔设置的频率)。我想要一种方法,这样我就可以在值发生变化时记录日志,而不是每秒获取一次。

var red, black;

function mainOnRed() {
    switch (checkMainOnRed()) {
        case "red":
            console.log("Black");
            break;
        case "black":
            console.log("Red");
            break;
    }
};


function checkMainOnRed() {
    if (currentColor == "black" && rowSet.length == 2) {
        return "red";
    } else {
        return "black";
    }
}

setInterval(mainOnRed, 1000);

值:

currentColor

rowSet

在脚本的其他部分定义。

这完全取决于何时设置currentColor

如果它是在一个事件上设置的,您只需为每个更改该变量值的事件调用 mainOnRed

我会这样做:

var red, black, lastColor;

function mainOnRed() {
    var color = checkMainOnRed();
    if (color != lastColor) {
        console.log(color);
        lastColor = color;
    };
};


function checkMainOnRed() {
    if (currentColor == "black" && rowSet.length == 2) {
        return "red";
    } else {
        return "black";
    }
}

setInterval(mainOnRed, 1000);