【发布时间】:2018-10-08 20:21:08
【问题描述】:
在将回调函数传递给调用者时如何绑定(或传递值)到回调?
例如:
function callbackTest() {
for(i=0; i<3; i++){
setTimeout(function(){
console.log("Iteration number ", i);
}.bind(i), i*1000);
}
}
callbackTest();
结果:
$ node callback-with-bind.js
Iteration number 3
Iteration number 3
Iteration number 3
我希望绑定在回调传递给调用者时发生。但是没有。
我该怎么做?
在我的实际应用程序中,调用者将另一个参数传递给我的回调,所以我不能简单地将 i 作为参数传递。
function callbackTest() {
for(i=0; i<3; i++){
setTimeout(function(myParam){
console.log("Iteration number ", i);
}.bind(i), i*1000);
}
}
callbackTest();
【问题讨论】:
-
Bind 从另一个函数创建一个函数,其中一些参数用特定值填充。您的函数不接受任何参数,因此使用 bind 没有任何意义
-
您的方法不需要那个绑定,只需使用 IIFE 来传递变量
i -
@charlietfl,如你所说。虽然我无法找到更早的答案。链接?
-
嗯?不知道你在问什么。如果要查找重复链接,则它位于系统放置的页面顶部
标签: javascript binding callback