从内部函数中的父作用域访问数组元素

百富

在下面的代码中,我尝试创建多个处理程序函数,这些处理函数必须调用存储在函数数组(“ buttonHandlers”)中的不同函数。此数组是外部范围的一部分:

buttonJson = {};
for (i = 0; i < buttonNames.length; i++) {
    customHandler = buttonHandlers[i];
    buttonJson[buttonNames[i]] = function() {
        customHandler.apply();
        $('#msg-dialog-confirm').dialog("close");
        $('body').remove('#msg-dialog-confirm');
        ...
    };
}

上面的代码导致处理程序函数调用函数数组的最后一个数组元素(“ buttonHandlers”)。我希望每个处理程序函数仅调用由相关数组索引指定的关联函数。我怎样才能做到这一点?

阿德内

customHandler 是一个全局变量,您在每次迭代时都将其覆盖,您应该创建一个新的作用域以锁定值

buttonJson = {};
for (i = 0; i < buttonNames.length; i++) {
    (function(button) {
        buttonJson[button] = function() {
            button.apply();
            $('#msg-dialog-confirm').dialog("close");
            $('body').remove('#msg-dialog-confirm');
            ...
        };
    })(buttonHandlers[i]);
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

AngularJs 1.6 - 在指令“链接”函数中无法访问父作用域

访问函数内部的数组的每个元素(Javascript)

Javascript函数关闭和对父作用域的访问

函数内部的作用域

如何在C ++中访问父作用域的变量?

如何从ko.js数组中的父函数访问调用子元素?

使作用域函数可从 <head> 中的主要 onload 函数访问

计算函数内部数组中的元素

JavaScript和内部函数中的块作用域

在Angular中的链接函数中访问作用域

如何访问作用域函数

js:访问父类的作用域

如何从PostgreSQL中的函数访问外部作用域变量?

调用父级“this”作用域的外部函数

访问指令内部的作用域属性

如何在AngularJS中的自定义指令*中使用自己的作用域*访问父作用域?

在C#中访问消息元素的内部嵌套JSON数组

PHP作用域子匿名函数alter parent变量在父函数中

Python 内部函数变量作用域

使用不同的作用域访问子类和父类中的相同变量

给angular指令指定一个模型名称,以访问其在父级中的作用域

在子指令中访问父指令的控制器作用域变量

如何访问从 JavaScript 中对象外部的函数内部调用的数组

在内部JavaScript回调函数中访问父函数参数的正确方法

PHP:数组内部对象内部数组内部的访问元素

为什么在另一个内部调用的函数无法访问外部函数的作用域?

C#:从外部作用域访问内部作用域中的变量

在TypeScript中访问lambda内部的类作用域是未定义的?

从作用于整个数组的函数中访问索引