console.log('' + {});
コンソールのようなものをログに記録すると[Object object]
、Chrome では出力されますが{}
、ノードでは別のもの ( ) が出力されます。この時点で、コンソール出力は実行環境に依存すると思っていたでしょう。
しかし、最近、いくつかのnot-null objectが与えられた場合、上記の予想される出力の代わりfoo
に何らかの形で Chrome が印刷されることを発見しました。null
そのため、使用するとコンソールにconsole.log('' + foo);
なりました。null
そんなことがあるものか?私が最初に推測したのは、何らかのtoString()
メソッドなど、重要なものを誤ってオーバーライドしたに違いないということでした。そうしないと、Chrome が非 null オブジェクトをnull
文字列に追加されたときに解釈する理由を説明できませんでした。
オブジェクトから文字列への暗黙的な変換が実際にどのように機能するかを知っている人はいますか? これがショーストッパーというわけではありませんが、本当に不思議に思います。
編集: JSFiddle は含まれていません。これは、依存関係が非常に多いクラスで発生するためです。そのため、提供できる適切な最小限の作業例はありません。とにかく、質問は私のコードを参照していません。それはかなり基本的で技術的なものです。
別の編集:完全を期すために、コメントに投稿したスクリーンショットを追加します。