javascript - 如何将作为函数调用参数一部分的变量传递给函数?

标签 javascript

for (var i = 0; i < json.length; i++) {
    $.Mustache.load('/mustaches.php', function(i) {
         //Do Something
    });
}

在这种情况下,如何将 var i 传递给函数?

编辑:抱歉,我实际上不想多次调用 Mustache.load 。只有一次。我怎样才能做到这一点?

最佳答案

这比您想象的要复杂一些,因为您必须确保传递 i 的正确值,以便回调不会使用循环结束的值。

for (var i = 0; i < json.length; i++) {
    (function(i){
        $.Mustache.load('/mustaches.php', function() {
            // use i. Call a function if necessary
            //Do Something
        });
    })(i);
}

关于回调术语:它指的是您作为参数传递的函数,以便您调用的函数可以回调它。

要理解我编写的代码,您必须

  • 了解回调会在循环完成后调用,因此当循环中的 i 具有循环结束的值时
  • 非全局变量的作用域是定义它的函数调用。这就是为什么有这个中间函数:定义另一个变量i,用循环的值调用它

关于javascript - 如何将作为函数调用参数一部分的变量传递给函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18280918/

相关文章:

javascript - 如何创建 n 个不同的数组,每个数组有 6 个随机数。 - JavaScript/Jquery

javascript - requirejs 具有揭示模块模式

javascript - 错误: Automation server can't create object

javascript - 这段js代码有什么错误

javascript - 测试自定义 Angular Directive(指令)是否显示/隐藏元素

javascript - 我应该使用replace()方法吗?

javascript - 来自 JSON 文件的嵌套列表内容

javascript - 查看事件监听器 - Javascript

javascript - 使用 jQuery 删除元素之前的文本

javascript - 在对新内容进行ajax调用后同步调用javascript