JavaScript:从外部访问匿名函数内部的变量

标签 javascript scope anonymous-function

假设我有这个匿名函数:

(function(window){

 var private = 'private msg';

 function sayit() {
   alert(private) // works
 }

 document.body.onclick = sayit; // works

})(window);

// private shouldn't be accessible here

这就是 JavaScript 的行为方式吗?

也就是说,没有办法从匿名函数之外的任何地方访问private

如果是这样,是否有可能找到某种 hack 从外部访问 private,让代码保持原样?

最佳答案

是的,这就是 Javascript 让您拥有“私有(private)”变量(隐藏在函数作用域中)的方式。

不,没有任何黑客可以在不重写代码的情况下访问诸如 private 之类的变量。

函数中用 var 定义的变量只能从该函数中访问。

关于JavaScript:从外部访问匿名函数内部的变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14373475/

相关文章:

javascript - 如何将javascript html和css打包到一个js文件中

javascript - 对此,全局对象和全局范围的混淆

用于包含范围的 Python locals()

javascript - 使用关联数组中的键检索值

javascript - 纹理 Splatted Terrain 上的法线贴图

javascript - 如何在多个html中调用静态页眉和页脚

JavaScript作用域问题

JavaScript 命名排序函数

model-view-controller - MATLAB 函数拒绝根据放置运行

匿名函数中的 php 闭包和引用 &