-
카테고리
-
세부 분야
프로그래밍 언어
-
해결 여부
미해결
2: 38
21.11.04 17:37 작성 조회수 126
0
enum 타입으로 정의된 Fruit 은 객체로 존재한다고 하셨는데, 어째서 5번째 "인덱스" 를 알수 있다고 하신건가요?
자바스크립트에서는 배열에서 인덱스를 알려면 당연히 '[ ]' 기호를 사용해서 인덱스에 접근할수 있고,
자바스크립트에서의 객체의 인덱스를 알려면 함수의 인수에 '...' 를 사용해서 객체를 받아오고, 해당 객체를 함수 내부에서 콘솔로그로
출력해보면 배열안에 해당 객체가 들어있는 것을 알수 있기 때문에 "인덱스" 라는 것에 접근할수 있는 것으로 알고 있습니다.
const obj = {
name: 'james',
age: 20
}
function f1(...arg){
console.log(arg); // [ { name: 'james', age: 20 } ]
console.log(arg[0]); // { name: 'james', age: 20 }
}
f1(obj)
그런데 enum 타입으로 정의된 변수 Fruit 은 어떻게 해서 "인덱스" 로 접근이 가능하게 되는 것인가요?
말씀하신 코드를 (Fruit[5] ) 출력해보지 않고 보기만 하면 Fruit 은 배열인것인거고, 5번째 요소가 존재하는걸로 이해하게 되어서
Fruit 는 배열인것이고, Fruit 라는 배열안에 요소가 5개가 들어가있는 것으로 이해가 되서요....
현재 enum 타입으로 정의된 Fruit 내부의 요소는 총 3개인데... 제가 잘못 이해하고 있는 걸까요?
답변을 작성해보세요.
0
이재승
지식공유자2021.11.04
안녕하세요
제가 '인덱스'라고 말하면서 헷갈리게 해드렸네요
Fruit 은 배열이 아니고 객체입니다
Fruit 객체는 아래 6개의 속성을 갖게 됩니다
'Apple', 'Banana', 'Orange', '0', '5', '6'
컴파일된 코드를 보면 Fruit 은 아래처럼 초기화되고 있습니다
var Fruit = {};
Fruit['Apple'] = 0;
Fruit['Banana'] = 5;
Fruit['Orange'] = 6;
Fruit[0] = 'Apple';
Fruit[5] = 'Banana';
Fruit[6] = 'Orange';
답변 1