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 吗?

如果是这样,是否有可能找到某种黑客方法从外部访问private,而使代码保持原样?

最佳答案

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

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

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

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

相关文章:

javascript - 如何在 JSON 数组中发布数据

javascript - 如何在java中发送响应期间压缩Rest服务中的数据(对象)

javascript - 函数内部的 Javascript 变量是否未声明(无 var)被视为全局变量?

python - Julia 可以将参数传递给内部匿名函数吗?

javascript - "Decompile"JavaScript函数?

php - 从匿名函数中中断 array_walk

javascript - 如何在 JavaScript 中实现 "maximize"按钮?

javascript - 如何从剩余时间中减去时间?

perl - 从 CGI 迁移到 mod_perl。了解我的、我们的、本地的

闭包中的快速变量范围 wrt CLGeocoder()