定时器传参数

THIS
  • 716

是这样的 我做的是一个类似微信语音的功能 当touchstart的时候和touchmove的时候
就让一个数字累加 但是定时器那边的作用域的时候 不知道怎么返回正确的数字 一直返回的是 undefined 不知道怎么改 请大神帮忙,图片描述

下面这种的能实现 但是必须写在定时器里面 我不想这样 我希望把那个值返回出来
图片描述

回复
阅读 2.1k
3 个回答
✓ 已被采纳

定义

function fnTimer(mun,callback){
    ClearInterval(SoundRecording.timer);
    SoundRecording.timer=setInterval(function(){
        callback&&callback.apply(null,[++mun]);
    },1000)
}

调用

fnTimer(SoudRecording.mun,function(newMun){
    SoundRecording.SoundStylesP.text(newMun);
});

希望楼主下次可以直接复制代码,截图真的不是很方便

不知道楼主是不是这个意思,不在定时器内部写函数内容

可以使用闭包:

   function fnTimer(num){
            return function (){
                    return num++;
            }
        }

调用时候需要这样

setInterval(fnTimer(1),1000)

定义一个对象 var obj=这个对象的某个属性 改变obj属性值,那么这个对象的属性也会随之改变

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
你知道吗?

宣传栏