javascript - Javascript功能范围,如何绕过它?
问题描述
所以基本上我正在尝试创建该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
执行传递的函数时,它只使用最终值(6 ) 从updateInterval
. 我无法使用参数 forupdateInterval
因为它在传递的函数中被调用startTimeout()
,并且我需要它保留最初调用时使用的相同值,但是该值是有问题的问题。
我不确定我的措辞是否好,这是我第一个问题,请告诉我是否需要更改任何内容。
我试过在很多地方使用this
而不是。var
解决方案
推荐阅读
- javascript - 找不到“页面”目录。NextJS 与 pkg
- java - Java 项目可以很容易地显示新场景,但仅限于某些 JavaFXML 文件,如何解决这个问题?
- protege - 为什么 protege 会自动出现蓝色箭头?
- java - JDA - 如果添加了某个角色,则向用户添加角色
- r - 将一个列表的每个命名元素附加到另一个列表的相同命名元素
- python - Python匹配字典问题中的各种关键字
- flutter - HTTP GET:标头(授权:承载令牌)
- laravel - 参数 1 传递给 UxWeb\SweetAlert\SweetAlertNotifier::__construct()
- kotlin - Kotlin 将十六进制字符串转换为 ByteArray
- apache-kafka - KSQL UNIX_TIMESTAMP 函数在使用查询创建的流上不是动态的