任意の入力文字列に対して値を管理したいとき, Object.create(null) が使える. var obj = Object.create(null); console.log(obj["toString"]); // => undefined こうすると Object.prototype に存在するプロパティ/メソッドを継承しない真に空のオブジェクトが作成できるので, 例えばうっかり "toString" などが入力されても問題ない. ところで ES6 には Map がある *1 からそれを使えよ, と思われるかもしれないけれど, 複製がコストになる場合や, あるいは上書きされない限り複製元を参照したい場合に, プロトタイプ継承を利用できる. var parent = Object.create(null); parent["foo"] = 1; var child = Objec