请建议如何将参数传递到使用setInterval的函数中。
我的例子setInterval(funca(10,3), 500);是不正确的。
请建议如何将参数传递到使用setInterval的函数中。
我的例子setInterval(funca(10,3), 500);是不正确的。
当前回答
这对我很有效
let theNumber = document.getElementById('number');
let counter = 0;
function skills (counterInput, timer, element) {
setInterval(() => {
if(counterInput > counter) {
counter += 1;
element.textContent = `${counter} %`
}else {
clearInterval();
}
}, timer)
}
skills(70, 200, theNumber);
其他回答
现在用ES5,绑定方法函数原型:
setInterval(funca.bind(null,10,3),500);
参考这里
引用论点就足够了:
OK --> reloadIntervalID = window.setInterval( "reloadSeries('"+param2Pass+"')" , 5000)
KO --> reloadIntervalID = window.setInterval( "reloadSeries( "+param2Pass+" )" , 5000)
注意每个参数的单引号。
通过IE8, Chrome和FireFox测试
将它们作为参数添加到setInterval:
setInterval(funca, 500, 10, 3);
你问题中的语法使用了eval,不建议练习。
你可以使用一个名为下划线js的库。它对bind方法进行了很好的包装,语法也更简洁。允许您在指定范围内执行函数。
http://underscorejs.org/#bind
_。绑定(函数,作用域,*参数)
这个问题可以很好地演示闭包的使用。其思想是函数使用外部作用域的变量。这里有一个例子……
setInterval(makeClosure("Snowden"), 1000)
function makeClosure(name) {
var ret
ret = function(){
console.log("Hello, " + name);
}
return ret;
}
函数“makeClosure”返回另一个函数,该函数可以访问外部作用域变量“name”。所以,基本上,你需要传递任何变量给“makeClosure”函数,并在函数中使用它们分配给“ret”变量。setInterval将执行分配给“ret”的函数。