javascript - 在外部范围访问变量?

标签 javascript closures scope

(function () {
    var x = 1;
    return {
        f: function (x) {
            alert(x);
        }
    };
}()).f(2);

假设我不想重命名任何一个变量。无法从 f 中访问首先声明的变量 x - 对吧?

最佳答案

正确。因为您在 function (x) 中有一个不同的 x,所以任何访问 x 的尝试都会得到那个(最近的范围)。它在更广泛的范围内阻止对任何 x 的访问。

关于javascript - 在外部范围访问变量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4563068/

相关文章:

javascript - 如何让 jQuery 等到动画完成?

javascript - 在 Phaser 中以相等尺寸制作 Sprite 表动画

php - 如何将 `$this` 绑定(bind)到 PHP 函数?

javascript - 使变量像窗口一样可访问

javascript - 获取浏览器中的用户操作

javascript - 为什么bindCallback不是一个函数?

javascript - 使用绑定(bind)、调用和应用方法设置超时

闭包中的 javascript 原型(prototype)和 "this"访问

c# - c# : Not working as expected 中的变量作用域

python - python 中导入类的范围是什么?