const a = {}; const b = { key: 'b' }; const c = { key: 'c' }; a[b] = 123; a[c] = 456; console.log(a[b]);
- A:
123
- B:
456
- C:
undefined
- D:
ReferenceError
답은 B
객체 키는 자동으로 문자열로 변환돼요. 객체
a
에 키는 객체(b), 값은 123
으로 설정하려고 해요.그러나, 객체를 문자열화 하면
"[object Object]"
가 돼요. 그래서 여기서 말하고자 하는 건 a["object Object"] = 123
이라는 거예요. 그 후, 같은 일을 다시 시도해요. c
는 암묵적으로 문자열화 한 다른 객체에요. 그래서 a["object Object"] = 456
이 돼요.그 후,
a[b]
를 출력하면 실제로는 a["object Object"]
예요. 그냥 456
을 설정했기 때문에, 456
을 반환해요.