javascript回调,如何包含附加参数

时间:2013-04-24 20:40:34

标签: javascript

我遇到的情况是我使用的是具有绑定功能的包/插件。

我用一个代码调用bind,这个代码是当myevents触发回调时的过滤器。在这个场景中,将进行三次调用绑定,一次调用参数' t1'第二次调用' t2'第三个用于' t3'。

当从myevents对象触发事件时,将使用data参数调用回调(取决于代码)。

我的问题是当调用回调函数时,我需要知道最初绑定时循环的索引号。例如,我在警告声明中有i变量,但我没有'知道如何获取值,以便在最终触发回调时保存。

似乎会有一些"功能(数据,i)和#34;的组合。实现这一目标。

bindList = array('t1','t2','t3');

for (var i = 0; i < bindList.length; i++) {
        myevents.bind(bindList[i], function(data) {
            alert('data arrive on item ' + i + ': ' + data);
        });
    }

我将不胜感激任何帮助。 感谢。

1 个答案:

答案 0 :(得分:5)

使用闭包。由于JS变量是“函数作用域”,因此0 {0}在迭代中的任何一点都指向相同的i。我们需要为每次迭代创建一个范围,以便绑定代码引用闭包i而不是循环的i

i