シンボルだけCreateSymbol()で作成する形では統一性がないので、他のオブジェクトも同様に作れるようにします。 記事の本題から外れた細かいつっこみなるけど、以下のように書くと new Symbol() でいけます。 var TAG_SYMBOL = 1; function Symbol(str) { var instance = Symbol.symbols[str]; if (instance == undefined) { instance = this; Symbol.symbols[str] = instance; } instance.tag = TAG_SYMBOL; instance.name = str; return instance; } (function() { if (!Symbol.symbols) { Symbol.symbols = {} } })(