`Symbol.prototype.description`
· 約2分
JavaScript の Symbol
は作成時に説明を付けることができます:
const symbol = Symbol('foo');
// ^^^^^
以前は、この説明にプログラム的にアクセスする唯一の方法は Symbol.prototype.toString()
を間接的に使用することでした:
const symbol = Symbol('foo');
// ^^^^^
symbol.toString();
// → 'Symbol(foo)'
// ^^^
symbol.toString().slice(7, -1); // 🤔
// → 'foo'
しかし、このコードは少し魔法のようで自明ではなく、“意図を表現し、実装を示さない”という原則に反しています。また、このテクニックでは説明がないシンボル (例: Symbol()
) と、空の文字列を説明として持つシンボル (例: Symbol('')
) を区別することができません。
新しい Symbol.prototype.description
のゲッター は、Symbol
の説明にアクセスするためのより使いやすい方法を提供します:
const symbol = Symbol('foo');
// ^^^^^
symbol.description;
// → 'foo'
説明のない Symbol
に対しては、ゲッターは undefined
を返します:
const symbol = Symbol();
symbol.description;
// → undefined