1
現在JavaScriptのスコープを学習していて、JavaScriptで非グローバルなシャドウ変数にアクセスすることが可能かどうか疑問に思っていましたか?つまり、以下の例では、変数a
aFunc
機能にJavaScript以外のグローバル変数にアクセスする方法があります
var a = 1;
function aFunc(){
var a = 10;
function innerFunc(){
var a = 100;
console.log("innerFunc a = " + a);
console.log("is it possible to access outer function's a variable?");
console.log("global a = " + window.a);
}
innerFunc();
}
aFunc();
PS 10に等しいこと - 私は同じ名前を使用して変数の命名理解は非常に悪い習慣ですが、私は好奇心から、この質問を推測します
こんにちはSuresh、助けてくれてありがとう!私はちょうど不思議だった、なぜあなたはjavascriptがこの機能を提供していないのか知っていますか?言い換えれば、このデザインの理由は何ですか? (私はJavaのバックグラウンドを持っていて、Javaでは多くのレベルのシャドウ変数にアクセスできます)。 – Thor
@CaptainAmericaこれはJSがどのように動作するのかということであり、 '単語「字句」とは、レキシカルスコープがソースコード内で変数が宣言されている場所を使用して、その変数がどこにあるかを判断するということです。最新の値を持つinit –
@CaptainAmericaところで、Javaには入れ子関数はありません。あなたは内部クラスを意味しますか?または匿名の内部クラス? –