var x=(function(){var u=1;})();
console.log(x.u); // undefined
有什么方法可以获取、访问或最终使用 console.log u 吗?
是否有任何我可以放入 x 中的代码可能会使 u 易受攻击/可从外部访问?
编辑:我的意思是不“直接”返回你。有没有办法不小心暴露你?
最佳答案
简短回答:不。私有(private)就是私有(private)就是私有(private)。
稍微长一点的答案:Javascript 无法防止构思或执行不当的编码、意外遗漏 var
或返回或设置对象中的属性访问器( this.u = 1;
)(或访问子作用域中的变量*),或淡咖啡。
如果正确使用且理解良好,在范围内公开局部/私有(private)变量必须出于某种意图。如果有什么神奇的巫术可以暴露你宝贵的变量,我还没有看到。 (没有证据证明或反驳雪人是否在地球上徘徊?!?)
这包括但不限于:
- 掠夺外星人
- 电臀舞麦莉赛勒斯
- 教皇(小心忏悔,嘴唇松弛......)
- 胖艾伯特
- 茶话会
- 鲍尔的猫
- 虚无主义者
- 咕噜咕噜
- 小犀牛
- El Yeti,née,Hefe
等等,等等。
* 草地上的枪手?
关于javascript - 有没有一种巧妙的方法来访问包装函数内的变量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24476016/