.jsファイルでグローバル変数を定義しています。:
関数にグローバル変数と同じ名前の引数がある場合、関数はグローバル変数を初期化できません。
var myvar;
function init(myvar){
myvar= myvar;
}
しかし、グローバル変数と引数の名前が異なるように変数名を変更すると、関数はグローバル変数を初期化できます。
var myvar2;
function init(myvar){
myvar2= myvar;
}
(myvar2
その後、正しく初期化されます)。
なぜそうなのですか?javascriptは、異なるスコープで同じ名前の2つの変数を許可しないため、変数のシャドウイングが発生していますか?
jsエンジンは、javaと同じ方法でメソッドスコープとグローバルスコープを区別できると思いました(このキーワードを使用していても)