バグを追跡しているときに、奇妙な動作に遭遇しました。これはなぜですか?
注: 参考までに、このコードは、私の JavaScript コードをクロージャ コンパイラで圧縮した結果です。
クロムでは、スローされたエラーでデバッガーが一時停止します。そして、コンソールにいくつかの行を入力しました (以下を参照)。
a
> null
B.Ta.Cd[a]
> "Override this" error is thrown
B.Ta.Cd[null]
> undefined
a
if が thenであると思われる理由がわかりませんnull
。なぜ 2 行目で同じ結果が得られないのか。
a
興味深いことに、私はどのように とnull
が違うのかを見たかったのです。
typeof(a)
> "function"
typeof(null)
> "object"
a
今、どうすれば関数とnull
?の両方になることができるのだろうと思っています。
私の修正は、チェックしてtypeof(a) == "function"
から返すことでした。しかし、理解できない問題の修正を追加するのは好きではありません。