关于JS中setTimeout()无法调用带参函数问题的解决方
关于JS中setTimeout()无法调用带参函数问题的解决方案详解
在JavaScript编程中,有时我们可能会遇到使用setTimeout()方法无法调用带参函数的问题。今天,我将为大家提供两种解决方案,并详细解释其原理和使用方法。
```javascript
var _st = window.setTimeout;
window.setTimeout = function(fRef, mDelay){
if (typeof fRef == 'function') {
var argu = Array.prototype.slice.call(arguments, 2);
var f = function(){
fRef.apply(null, argu);
};
return _st(f, mDelay);
}
return _st(fRef, mDelay);
}
```
```javascript
setTimeout(fun,10,param);
```
其中,fun是函数名,10是延迟时间(单位是毫秒),param是传递给fun函数的参数。
接下来,让我们了解第二种方法。这种方法相对简单一些。我们可以创建一个递归函数,将函数名和参数以字符串的形式拼接起来,然后利用setTimeout()进行递归调用。具体代码如下:
```javascript
function moveing(id,target_x,target_y,t){
var ele = document.getElementById(id);
//其他代码...
var repeat ="moveing('"+id+"',"+target_x+","+target_y+","+t+")";
var movment = setTimeout(repeat,t);
}
```
在这个例子中,moveing函数会根据给定的参数进行递归调用,从而实现动画效果。这个方法需要谨慎使用,因为递归调用可能会导致性能问题。在实际开发中,我们需要根据具体情况选择最合适的方法。更多关于JavaScript的内容,请查看本站专题。希望本文能对大家有所帮助。如果您对JavaScript编程感兴趣,不妨关注我们的其他文章,共同学习进步。如果您有任何疑问或建议,请随时与我们联系。感谢您的阅读!下面是文章内容结束的部分代码或语句。本文已结束,如有需要请继续阅读其他文章。请注意保持正确的格式和语法规范。关于如何渲染结束部分代码或语句的具体操作请查阅相关文档或教程。同时请注意过滤掉与文章无关的内容和敏感信息。例如电话、、和手机号码等都需要过滤掉以避免泄露隐私或产生安全问题。最后请注意保持字数在要求的范围内并保持内容的生动性和文体丰富性以吸引读者的兴趣和理解。
编程语言
- 关于JS中setTimeout()无法调用带参函数问题的解决方
- 微信小程序之滚动视图容器的实现方法
- AngularJS监听ng-repeat渲染完成的方法
- javascript动态创建对象的属性详解
- XML指南——XML 确认
- PHP实现Soap通讯的方法
- 利用js正则表达式校验正数、负数、和小数
- PHP编程快速实现数组去重的方法详解
- vue 弹框产生的滚动穿透问题的解决
- angularjs 处理多个异步请求方法汇总
- JavaScript实现防止网页被嵌入Frame框架的代码分享
- 远程登陆SQL Server 2014数据库的方法
- 微信小程序使用scroll-view标签实现自动滑动到底部
- JS基于递归算法实现1,2,3,4,5,6,7,8,9倒序放入数组中
- sortable+element 实现表格行拖拽的方法示例
- Node.js检测端口(port)是否被占用的简单示例