总的来说用法就一种:

setTimeout(要执行的代码,间隔时间,参数1,参数2);

但是要执行的代码有几种写法,分别如下:

如果执行的代码不需要参数,有3种写法如下:

1,直接将js代码写在字符串中:

setTimeout("alert(123)",500);

2,在字符串中调用函数:

setTimeout("callFun()",500);

function callFun(){
    alert(456);
}

3,使用匿名函数:

setTimeout(()=>{
	    		alert(456)
	           },500);


或者 


setTimeout(function(){
	    		alert(456)
	       },500);

如果调用函数时需要传递参数:

1,匿名函数可以这样传递(千万不要在匿名函数的括号里面加参数,否则不执行):

var obj = {name:"xxx"}
setTimeout(()=>{
	alert(obj.name)
},500,obj);

或者

setTimeout(function(){
	alert(obj.name)
},500,obj);

2,非匿名函数,需要借用匿名函数做中转调用,比如在vue中调用方法时都需要加this开头的,就只能这样

假设这是vue的methods, aaa 内部用setTimeout调用 bbb ,并给bbb传递参数


methods:{
     aaa(){
           let that = this;
           var obj = {name:"xxx"}
           setTimeout(()=>{
               obj.name = "yyyyyyy";
	           that.bbb(obj)
           },500,obj);

    },

    bbb(obj){
        alert(obj.name);
    }

}

Logo

基于 Vue 的企业级 UI 组件库和中后台系统解决方案,为数万开发者服务。

更多推荐