-
카테고리
-
세부 분야
프론트엔드
-
해결 여부
해결됨
객체속성 접근에 관해 질문입니다.
21.09.09 19:01 작성 조회수 131
0
.map((tabType) => ({tabType, tabLabel: TabLabel[tabType]}))
해당 코드에서
TabLabel[tabType] -> TabLabel.tabType 으로 변경하면 undefined 가 출력이 되는데 이유를 모르겠습니다.
//
const TabLabel = {
[TabType.KEYWORD]: '추천 검색어',
[TabType.HISTORY]: '최근 검색어'
}
console.log(TabLabel['KEYWORD']);
console.log(TabLabel.KEYWORD);
이런식으로 콘솔에 찍어보면 잘 출력이 됩니다.
스코프와 관련이 있나요?
답변을 작성해보세요.
1
김정환
지식공유자2021.09.26
TabLabel 객체를 보시면 문자열 값을 가지는 두 개 속성이 있습니다.
- TabLabel[TabType.KEYWORD]: '추천 검색어'
- TabLabel[TabType.HISTORY]: '최근 검색어'
변수로 객체 키에 접근한 이 객체는 결국 이러한 모습이 될거에요.
- TabLabel.KEYWORD: '추천 검색어'
- TabLabel.HISTORY: '최근 검색어'
질문에 총 네 가지 접근법이 있는데요. 이런 차이가 있습니다.
- TabLabel[tabType]: tabType 변수에 따라 문자열 혹은 undefined가 될 수 있습니다.
- TabLabel.tabType: tabType 속성이 없으니깐 undefined가 됩니다.
- TabLabel['KEYWORD']: 문자열("추천검색어")
- TabLabel.KEYWORD: 문자열("추천검색어")
답변 1