実行時
var a=b=c=d=e=f=a;
//no error(a has not initialize before)
var x=y;
//ReferenceError: y is not defined
a
最初のコードが以前に初期化されているかのように実行するにはどうすればよいでしょうか。
実行時
var a=b=c=d=e=f=a;
//no error(a has not initialize before)
var x=y;
//ReferenceError: y is not defined
a
最初のコードが以前に初期化されているかのように実行するにはどうすればよいでしょうか。
可変巻きのせいです。var x = EXPR;
実際には次のように変換されます。
// beginning of the block (function/file)
var x; // === undefined
// ...
// the actual position of the statement
x = EXPR
あなたの例では、これは次のことを意味します。
var a; // === undefined
a = b = c = d = e = f = a;
a
のみが using で宣言されていることに注意してください。つまり、var
大量のグローバルを作成していることになりますが、これは常に悪いことです。