setTimeout传参[通俗易懂]

setTimeout传参

大家好,又见面了,我是全栈君。

unction test(s)
{
    alert(s);
}
window.setTimeout(function(){test('str');},1000);

这样就可以了…
为什么是这样呢.
因为setTimeout要求的第一个参数是函数…比如setTimeout(a_fun,1000)这样是可以的,a_fun是一个函数.
但是setTimeout(a_fun(),1000);这样就不行了.因为这里a_fun()其实是函数的返回值了…这样讲应该能明白了.
另外,不推荐网上有人用的方法setTimeout(‘test(1)’,1000);这样的形式,因为这个有很多情况下是不实用的.
如果实在要用这种方法,只能这样:setTimeout(“test(‘”+param+”‘)”,100);这种方式。

还有一种方法:

function timeClick(obj)  
       {  
        //   var obj=document.getElementById('');  
           obj.style.backgroundColor="gray";  
           obj.onclick=function(){ return false;};  
           setTimeout(function(){resetbgColor(obj);},3000);  
       }  
         
       function resetbgColor(obj)  
       {  
         //  var obj=document.getElementById('');  
           obj.style.backgroundColor="";  
        //   $('#'+'').click(timeClick);  
      //  debugger;  
           obj.οnclick=function(){  
               timeClick(this);  
           };  
       }  

我发现这句还真是万能啊,太服了, function(){ method(param);} 

          这里两个地方都用到了,解决了我的所有问题,1.setTimeout传参数 2.动态设置onclick事件 

         setTimeout(function(){resetbgColor(obj);},3000); 

          obj.οnclick=function(){ 
                timeClick(this); 
            };

还有一种方法:

<script language="JavaScript" type="text/javascript">
<!--
var userName="jack";
//根据用户名显示欢迎信息
function hello(_name){
       alert("hello,"+_name);
}
//创建一个函数,用于返回一个无参数函数
function _hello(_name){
       return function(){
             hello(_name);
       }
}
window.setTimeout(_hello(userName),3000);
//-->
</script>

这 里定义了一个函数_hello,用于接收一个参数,并返回一个不带参数的函数,在这个函数内部使用了外部函数的参数,从而对其调用,不需要使用参数。在 window.setTimeout函数中,使用_hello(userName)来返回一个不带参数的函数句柄,从而实现了参数传递的功能。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/108556.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(1)


相关推荐

  • 个人网站可以申请微信授权登录吗

    个人网站可以申请微信授权登录吗

    2021年10月25日
  • ksweb使用教程_html5websocket查改

    ksweb使用教程_html5websocket查改0x01介绍nim一键木马免杀项目,目前能完美过360、火绒等杀软。作者使用纯nim语言编写的shellcode记载器,代码基本是从之前c++版本平移过来,作者并没有提供部署教程,踩坑记录下。0x02使用教程环境:ubuntu20.4安装:#下载代码库cd/rootgitclonehttps://github.com/M-Kings/BypassAv-web.git #起个Ubuntu的docker安装do…

  • ViewPager 2 使用讲解「建议收藏」

    ViewPager 2 使用讲解「建议收藏」之前早有耳闻Google为我们提供新的控件来替换老旧的ViewPager进而解决一些不好解决的bug问题,巴拉巴拉一大堆,就是前因后果啥的…相信读者已经在“张鸿洋”大神、“郭霖”大神或者是其他Android大佬的公众号那里看见了许许多多了,或许各位感觉很无聊了,笔者菜鸟,分析不了历史背景,也不是很懂源码,但是小菜鸟,可以带给位看官尝个鲜,教你怎么用,怎么上手哈,闲话不多说,我们步入正题。…

  • 安卓服务(Service)的两种开启方式以及服务的生命周期

    安卓服务(Service)的两种开启方式以及服务的生命周期

  • Java大数据学习路线图

    Java大数据学习路线图Java大数据学习路线图准备篇适用/适合人群:适合基础小白在这里还是要推荐下我自己建的大数据学习群:199427210,群里都是学大数据开发的,如果你正在学习大数据,小编欢迎你加入,大家都是软件开发党,不定期分享干货(只有大数据软件开发相关的),包括我自己整理的一份最新的大数据进阶资料和高级开发教程,欢迎进阶中和进想深入大数据的小伙伴加入。目标:掌握JavaS…

  • 驱动程序vmci.sys版本不正确。请尝试重新安装 VMware

    驱动程序vmci.sys版本不正确。请尝试重新安装 VMware

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号