Javascript функциональная область видимости, как обойти это? - PullRequest
0 голосов
/ 17 февраля 2019

Так что в основном я пытаюсь создать альтернативу функции setTimeout, потому что она не работает для моих целей.

addInterval(func, wait_time){
    this.intervals.push(func);
    this.interval_waits.push(wait_time);
    this.updateInterval(this.interval_waits.length - 1);
}
updateInterval(index){
    console.log(index);
    function callTimeout(index, timeC){
        let i = index;
        let t = timeC;
        timeC.startTimeout(function(){  
            console.log(i);
            t.intervals[i](t.interval_depends[i]);
            t.updateInterval(i);
        }, t.interval_waits[i]);
    }
    let a = index;
    callTimeout(a, this);
}

Когда вызывается this.updateInterval, он отправляет значения 0-6 в updateInterval по одному, эта функция вызывает внутреннюю функцию с именем callTimeout, которая запускает другую функцию (слишком долго дляinclude), но в основном, когда callTimeout выполняет переданную функцию, он использует только окончательное значение (6) из updateInterval.Я не могу обойти использование параметра для updateInterval, потому что он вызывается в функции, переданной через startTimeout(), и мне нужно, чтобы он сохранил то же значение, с которым он был первоначально вызван, однако это значение является проблемой, о которой идет речь.

Я не уверен, хорошо ли я сформулировал это, это мой первый вопрос, скажите мне, если мне нужно что-то изменить, пожалуйста.

Я пытался использовать this вместо var во множестве мест.

...