javascript中的变量-尝试从子函数到主函数访问变量

javascript中的变量-尝试从子函数到主函数访问变量,javascript,variables,scope,hoisting,Javascript,Variables,Scope,Hoisting,我想通过subFunc从mainFunc访问变量x,但是我可以从全局范围或本地环境访问变量x 如何从subFunc访问mainFunc的变量x var x = 'global x' function mainFunc() { var x = 'mainFunc x' console.log(x) console.log(this.x) function subFunc() { var x = 'subFunc x' con

我想通过subFunc从mainFunc访问变量x,但是我可以从全局范围或本地环境访问变量x

如何从subFunc访问mainFunc的变量x

var x = 'global x'
function mainFunc()
{
    var x = 'mainFunc x'
    console.log(x)
    console.log(this.x)

    function subFunc()
    {
        var x = 'subFunc x'
        console.log(x)
        console.log(this.x)
    }
    subFunc()
}

mainFunc()
console.log(x)

每次在函数中执行
var x
,都是在生成变量的阴影版本。同名的不同变量。如果要访问同名的更高范围变量,请不要设置卷影版本,因为我可以访问mainFunc的x和global func的x,但无法访问mainFunc的x,是否有方法可以访问该变量?一旦创建卷影变量,您就无法访问范围更高的变量你的意思是它会影响词汇环境?不,如前所述。