UGA Boxxx

つぶやきの延長のつもりで、知ったこと思ったこと書いてます

【JavaScript】[Object: null prototype] { title: '' }という警告ログ

console.logで変数の値を見ていると、ある変数で以下のような警告がでていることがわかった

[Object: null prototype] { title: '' }

表示はできているが、前の[Object: null prototype]が気になるので調べた

調べるとこれは、プロパティ/プロトタイプのないオブジェクトであることを示しているみたい

オブジェクトはデフォルトでは .toString().valueOf()などを含むObject.prototypeを継承しているが、それらを継承していないnullのオブジェクトの場合にこう表示される

このオブジェクトの作り方は以下

Object.create(null)

developer.mozilla.org

なぜObject.create(null)を作るのかの考察は以下の記事が参考になった
JavaScriptでなぜ Object.create(null) を使うのか? - Qiita