javascript - 为什么我无法访问设置?

标签 javascript jquery scope

我需要一些范围帮助。下面是我的代码(简化)。在 buildDropdownOptions 内 ajax 调用的成功事件内的函数内...(拗口)。

我正在尝试在与 buildDropdownOptions 级别相同的设置对象中设置某些内容,但我无法访问它(可能是因为 AJAX 调用?)。

有人知道如何让这个东西发挥作用吗?

var settings = {},
buildDropdownOptions = function () {

                    var success = function (clinics, settings) {
                        var dropdownOptions = [];

                        $.each(clinics, function (i, clinic) {
                            dropdownOptions.push('<option value="' + clinic.ClinicId + '">' + clinic.Name + '</option>');
                        });

                        settings.dropdown.options = dropdownOptions;
                    };

                    $.ajax({
                        'url': settings.dropdown.source,
                        'success': function (clinics, settings) {
                            success(clinics);
                        }
                    });
                };

最佳答案

通过将 settings 包含为函数参数,您可以隐藏更高级别的 settings 变量。

事实上,在这种情况下,您可以使用 undefined 隐藏它。

删除参数列表中提到的设置,它应该可以正常工作。

关于javascript - 为什么我无法访问设置?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14530201/

相关文章:

javascript - JQuery 点击功能不起作用

javascript - 只有在第一个完成后才启用第二个类型

javascript - 给类选择器添加限制 "dog"

类 << self block 内的 ruby​​ 常量作用域

javascript window.onload 作用域

javascript - 重用javascript代码的Django最佳实践

javascript - 按时间间隔添加值时,多个图表不会随机同步移动

javascript - 在谷歌图像搜索中作弊隐藏游戏 "Atari Breakout"

javascript - 从iframe内部想要获取所有iframe类名(每个iframe有不同的类名)

java - 将 Java 匿名内部类转换为 Lambda 表达式后,范围会发生什么变化?