Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/382.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 有没有办法获得具有相同名称的外部作用域变量?_Javascript_Scope - Fatal编程技术网

Javascript 有没有办法获得具有相同名称的外部作用域变量?

Javascript 有没有办法获得具有相同名称的外部作用域变量?,javascript,scope,Javascript,Scope,如果我在外部闭包中定义了某个变量,而在内部闭包中定义了另一个同名变量。我能得到外部变量吗 我知道它仍然在内存中的某个地方,并且没有被覆盖,因为它可以在函数完成后打印出来。有没有办法访问它 constfoo='outer'; 功能条(){ const foo='内部'; //有没有办法从这里到外面的餐厅? console.log(foo);/“内部”,但我希望它是“外部” } bar(); console.log(foo);//“outer”如果foo位于顶层,并使用const声明,则是使用新函

如果我在外部闭包中定义了某个变量,而在内部闭包中定义了另一个同名变量。我能得到外部变量吗

我知道它仍然在内存中的某个地方,并且没有被覆盖,因为它可以在函数完成后打印出来。有没有办法访问它

constfoo='outer';
功能条(){
const foo='内部';
//有没有办法从这里到外面的餐厅?
console.log(foo);/“内部”,但我希望它是“外部”
}
bar();

console.log(foo);//“outer”
如果
foo
位于顶层,并使用
const
声明,则是使用
新函数访问它的唯一方法之一,该函数运行时的作用域位于顶层。(请不要这样做):

constfoo='outer';
功能条(){
const foo='内部';
const fn=新函数('return foo');
console.log(fn('foo'));
}
bar();

console.log(foo);//“外部”
我想我应该添加这个答案,因为它在某些情况下可能会有所帮助

constfoo='outer';
功能条(){
//虽然很难看,但它很管用
{
const foo='内部';
//代码的其余部分
}
console.log(foo);/“外部”
}
bar();

console.log(foo);//“外部”
哇,这真是令人兴奋。我不知道可以强制从全局范围运行表达式。经过一些研究。似乎
(0,eval)('foo')
也能做到这一点,但是
eval('foo')
由于某些原因不能做到。