Symbol
객체는 생성자 함수가 존재하며 호출만으로 생성이 가능하다. 또한 심벌을 생성하는 몇 가지 방법이 더 있으므로 아래의 설명과 문법을 참고하기 바란다.
심벌(symbol) 데이터를 생성하는 방법은 다음과 같다. 모두 심벌을 생성하지만 차이를 가지고 있다.
Symbol()
Symbol()
함수를 참고하기 바란다.Symbol.for()
Symbol
객체의 정적 메소드로 전역(global)적인 심벌을 생성한다. 특정 키를 인수로 지정하면 전역 심벌 레지스트리 목록(global symbol registry)에서 검색하고 존재하면 해당 심벌을 반환한다. 존재하지 않는 경우에는 지정된 키로 심벌을 생성한다. 유효 범위와 상관없이 심벌이 필요한 곳 어디든지 사용이 가능하다.Symbol
객체의 정적 멤버
를 참고하기 바란다.Symbol.for(key)
전역적인 심벌을 생성하거나 반환한다.
[Symbol.iterator]()
잘 알려진 심벌 중에서 반복 가능한 반복자(iterator) 객체를 나타낸다. 이러한 심벌을 키로 사용하는 객체는 이터레이블 프로토콜(iterable protocol)을 준수하는 객체이다. Symbol.iterator
심벌을 키로 사용하는 객체의 멤버는 이터레이터 헬퍼(iterator helper) 객체를 구현한 반복자를 반환하는 메소드이어야 한다.
Symbol([description])
일반적인 심벌 생성 방식이다.
현재 심벌(symbol)에 대한 설명을 조회한다. 설명이 없는 경우에는 undefined
를 갖는다.
현재 심벌의 값을 반환한다.
현재 심벌(symbol)을 나타내는 문자열을 반환한다.
현재 심벌(symbol)의 원시값을 반환한다.
객체가 특정 프로퍼티를 가지고 있는지를 블린(boolean
) 값으로 반환한다.
해당 객체가 다른 객체의 프로토타입 체인에 속한 객체인지를 체크한다.
매개 변수의 속성이 열거가능(enumerable)한지 여부를 체크한다.
객체를 나타내는 문자열을 작동하는 지역(locale)의 방식으로 출력이 된다.
객체를 나타내는 문자열을 반환한다.
객체의 원시(primitive) 값을 반환한다.
객체의 생성자 함수를 참조한다.
상속된 [[Prototype]]
참조하거나 설정가능하며 일반적으로 실제 코드상에서는 잘 사용되지 않는다. ECMAScript에서 사용되지 않는 비표준이지만 최신 웹브라우저에서는 비공식적으로 지원하고 있다. 따라서 곧 표준 속성으로 지원될 확률이 높다.