Mat*_*rym 5 javascript variables scope
有什么方法可以在超出范围的情况下更改变量?我通常知道您不能,但是我想知道是否有任何技巧或替代。例如,有什么方法可以使以下工作:
function blah(){
var a = 1
}
a = 2;
alert(blah());
Run Code Online (Sandbox Code Playgroud)
编辑(为澄清):
假设的情况是修改setInterval函数中使用的变量,该函数也超出范围,并且不能在以前的javascript文件中使用。这是一个非常古怪的场景,但这是我要询问的场景。
不,没有技巧或覆盖。您必须计划让两个地方都能够在同一范围内看到该变量。
我能想到的关于范围的唯一技巧是window在浏览器中使用来访问全局对象。这可以帮助您获取“隐藏”变量——该变量在作用域内,但其名称已被局部变量(或作用域链中更接近的其他变量)取代。
闭包和类可以为您提供一些其他有关范围的技巧,但没有一个可以让您完全覆盖范围规则。