JavaScript函数作用域,如何解决?

时间:2019-02-17 03:31:21

标签: javascript variables scoping

因此,基本上,我正在尝试创建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的内部函数,该内部函数启动另一个函数(太很长的时间),但是基本上在callTimeout执行传递的函数时,它仅使用updateInterval中的最终值(6)。我无法绕过使用updateInterval的参数,因为它在通过startTimeout()传递的函数中被调用,并且我需要它保留与最初调用时相同的值,但是该值是问题所在问题。

我不确定我的措辞是否很好,这是我有史以来第一个问题,告诉我是否需要更改任何内容。

我尝试在很多地方使用this代替var

0 个答案:

没有答案