まだ定義されていないが奇妙な問題が見つかった場合、変数をデフォルト値に定義したいと思います。
var x = x || {}
動作しますx = x || {}
が、エラーが発生します。
firebug からの出力。
>>> a = a || {};
ReferenceError: a is not defined
[Break On This Error]
a = a || {};
with(_... {}; }; (line 2)
>>> var b = b || {};
undefined
>>> b;
Object {}
>>> a;
ReferenceError: a is not defined
[Break On This Error]
2番目のエラーが発生したように見えるのに、最初のエラーが発生するのはなぜですか。