想要改变定时器的执行方法直接在外部改变当前引用指向的方法即可
//示例类
class Fel{
//示例方法
static abc;
}
//示例方法初始化
Fel.abc=function (){
console.log("未改变");
}
//按钮点击事件,动态修改示例方法
but1.onclick=function (){
Fel.abc=function (){
console.log("改变");
}
}
//查看方法状态
but2.onclick=function (){
Fel.abc();
}
//定时器
setInterval(()=>{
Fel.abc();
},30);
注意:
javascript的 lambda表达式和java不同 不能直接传入方法引用
错误例子
setInterval(Fel.abc,30);
这个定时器依旧会被执行,但Fel.abc()这个方法执行的是默认初始化的状态,并不会执行修改后的状态