`
bclxz520
  • 浏览: 66235 次
  • 性别: Icon_minigender_2
社区版块
存档分类
最新评论

关于setTimeout不能传递参数的问题

阅读更多
<script language="javascript">
/**//*
    功能:修改 window.setTimeout,使之可以传递参数和对象参数
    使用方法: setTimeout(回调函数,时间,参数1,,参数n)
*/

var __sto = setTimeout;
window.setTimeout 
= function(callback,timeout,param)
{
    
var args = Array.prototype.slice.call(arguments,2);
    
var _cb = function()
    
{
        callback.apply(
null,args);
    }

    
    __sto(_cb,timeout);
}


///测试代码

function aaaa(a)
{
    alert(a);
}


function aaaaa(a,b,c)
{
    alert(a 
+ b + c);
}



var a = new Object();
window.setTimeout(aaaa,
1000,a);
window.setTimeout(aaaaa,
2000,a,6,7);
</script>
分享到:
评论
2 楼 ap0406708 2010-06-09  
老兄,转行了?没更新的
1 楼 fandayrockworld 2010-05-29  
嗯,好用,谢谢了

相关推荐

    向setTimeout传递函数参数

    在这个例子中,我们使用箭头函数确保`sayHello`方法的`this`指向`obj`对象,然后传递参数`'Jane'`。两秒后,控制台将输出`Hello, John, Jane`。 值得注意的是,`setTimeout`返回一个唯一的ID,可以通过`...

    javascript setTimeout()传递函数参数(包括传递对象参数)

    在上述问题描述中,用户尝试使用setTimeout("fun(参数)", 1000)的方式传递参数,但遇到了错误。在JavaScript中,定时器函数的字符串形式已经被废弃,因为它们容易引发错误和安全漏洞,现在推荐使用函数引用和apply...

    JavaScript实现向setTimeout执行代码传递参数的方法

    但昨天在写代码的时候发现当第一个参数是函数调用的时候,不能向被调函数传递参数。这真是个非常严重的问题,我排查了好久才发现问题,浪费了N多时间啊。。 后来上网查了查,这其实是IE的一个BUG。解决方法有很多,...

    JS中setInterval、setTimeout不能传递带参数的函数的解决方案

    使用函数名字符串的方式可以传递参数,但这种方法的缺点是参数不能在运行时动态改变。例如: ```javascript setInterval("foo(id)", 1000); ``` 这里,`id` 的值在定时器创建时就被固化了,无法在之后的执行中...

    精解window.setTimeout()window.setInterval()使用方式与参数传递问题!

    这是我们常常会使用方法setInterval或setTimeout,但是由于这两个方法是由脚本宿主模拟出来的Timer线程,在通过其调用我们的方法是不能为其传递参数。 我们常用的使用场景是: 代码如下:window.setTimeout(...

    使用自定义setTimeout和setInterval使之可以传递参数和对象参数

    /****************************************************** // // 功能: 修改window.setTimeout,使之可以传递参数和对象参数 // 使用方法: window.setTimeout(回调函数,延迟时间,参数1,参数n) // ******************...

    关于JS中setTimeout()无法调用带参函数问题的解决方法

    // 使用 apply 方法调用原始函数并传递参数 }; return _st(f, mDelay); // 使用保存的原始 setTimeout 延迟执行 f 函数 } return _st(fRef, mDelay); // 如果是其他类型的参数,使用原始的 setTimeout }; ``` ...

    js中settimeout方法加参数.docx

    在这个例子中,`message`就是传递给`setTimeout`的参数。当3秒后回调函数被执行时,`message`会被作为参数传递给`console.log`函数。 #### 三、循环中的`setTimeout`与闭包问题 当在循环中使用`setTimeout`时,...

    jQuery setTimeout传递字符串参数报错的解决方法

    总结来说,当使用setTimeout函数传递参数时,如果需要调用局部变量,则应避免传递字符串参数,而是直接传递函数引用或使用匿名函数封装。这种方法不仅避免了作用域相关的问题,也增强了代码的安全性。开发者在实际...

    精解window.setTimeout()&amp;window.setInterval()使用方式与参数传递问题!

    然而,当需要在setTimeout或setInterval中调用函数并传递参数时,问题就会出现。直接在字符串形式的方法中传递参数是不行的,因为Timer线程无法访问非全局变量。例如: ```javascript function delayRun(param) { ...

    js setTimeout 参数传递使用介绍

    然而,如果需要向这个函数传递参数,问题就出现了。有以下两种常见策略来解决这个问题: 1. **匿名函数包裹**: 在这种情况下,我们可以创建一个匿名函数,将参数包含在其中,并调用目标函数。如下所示: ```...

    js中settimeout方法加参数的使用实例.docx

    在实际应用中,我们常常需要向`setTimeout`传递参数,以便在函数执行时使用这些参数。在提供的文档中,有这样一段代码: ```javascript function timedMsg() { var a = "dd"; var t = setTimeout(function() { ...

    setTimeout应用(模拟站长之家导航)

    - `param1, param2, ...`: 可选参数,可以传递给`function`的值。 当调用`setTimeout`时,JavaScript会安排在指定延迟后执行提供的函数。这个延迟不是精确的,因为它依赖于浏览器的事件循环和其他正在运行的任务。...

    关于JS中setTimeout()无法调用带参函数问题的解决方法.docx

    然而,一个常见的问题是在尝试使用`setTimeout()`调用带参数的函数时,参数往往无法正确传递。这是因为`setTimeout()`默认只接受一个函数引用和一个延迟时间作为参数,而不直接支持传递额外的参数。这个问题可以通过...

Global site tag (gtag.js) - Google Analytics