首页 > 其他 > 详细

setTimeOut的函数传参问题

时间:2020-05-28 15:59:12      阅读:80      评论:0      收藏:0      [点我收藏+]

setTimeOut的错误使用:

给里面的函数传参时,我一开始是类似这样写的,这样写是错的,这里的function(i)中i的其实是形参,并不能把for里面的i传给它:

1 for(var i=0;i<5;i++){
2   setTimeout(function(i){
3     console.log(i);
4   },i*1000);
5 }

这样写输出的结果是undefined。

我们可以看一下setTimeOut的定义:

declare function setTimeout(handler: TimerHandler, timeout?: number, ...arguments: any[]): number;

 

所以要想传参要如下:

for(var i=0;i<5;i++){
  setTimeout(function(m, n){
    console.log(i);
    console.log(m, n);
  },i*1000, 2, 4);
}

 

或者这样:

for(var i=0;i<5;i++){
  setTimeout(function(m){
    console.log(m);
  },i*1000, i); //将i传给m
}

 

setTimeOut的函数传参问题

原文:https://www.cnblogs.com/pureshee/p/12981108.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!