본문으로 건너뛰기

Symbol.prototype.description

· 약 1분
Mathias Bynens ([@mathias](https://twitter.com/mathias))

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(Symbol(''))을 구분할 수 없게 합니다.

새로운 Symbol.prototype.description getterSymbol의 설명을 접근하는 데 있어서 더 편리한 방법을 제공합니다:

const symbol = Symbol('foo');
// ^^^^^
symbol.description;
// → 'foo'

Symbol에 설명이 없는 경우 getter는 undefined를 반환합니다:

const symbol = Symbol();
symbol.description;
// → undefined

Symbol.prototype.description 지원