我已经看到一些使用匿名立即调用函数进行封装的代码看起来像这样
(function(){
var ABC = ...
function XYZ(){
....
}
})();
ABC或XYZ()是否完全无法访问(通过脚本注入/劫持)?
答案 0 :(得分:2)
一旦范围有0个引用
的变量,对象O在范围内“完全不可访问”在这种情况下,以上都不可用:您没有对IIFE范围之外的ABC
的内容的引用,并且您没有对任何对象的引用它是属性的。这意味着它现在无法访问。但是,如果您使用ABC
关闭XYZ
并返回XYZ
,则现在可以通过 {{1}访问ABC
}}:
XYZ
脚本注入/劫持部分太模糊,无法有意义地回答。
答案 1 :(得分:0)
在您提供的示例中,变量和函数在自调用函数范围内完全无法访问