JavaScript
자바스크립트에서 [object Object] 가 대체 뭘까?
여러분들은 자바스크립트 개발자로 있는 동안 toString 이라는 메소드를 한 번 이상은 들어봤을 것 같다. 그리고 오픈 소스 라이브러리들에 관심이 많아서 자주 들여다봤다거나 참여를 해본 적이 있다면 오픈 소스 라이브러리들이 어떤 식으로 값의 타입을 검사하는지 엿볼 수 있는 기회가 더 많았을 거라고 생각한다.
자바스크립트 스터디를 하는 중에 타입 체크에 대한 내용을 같이 공부하고 있었다. 그러다가 어디선가 종종 본 것 같은 녀석이 있었는데, 바로 [object Object] 였다. 자바스크립트에 대해 더 서툴렀었던 과거에는 [object Object] 를 봤을 때 이게 뭔지 전혀 몰랐었다. 당연히 알아볼 생각도 하지 않았기에 대체 뭐길래 이렇게 나오는지 명확하게 알고 있지 않아 최근 스터디에서도 명쾌하게 이해를 할 수가 없었다.
그래서 찾아봤다.
Every object has a
toString()
method that is automatically called when the object is to be represented as a text value or when an object is referred to in a manner in which a string is expected
모든 object 는toString()
이라는 메소드를 가지고 있는데 이 메소드는 object 가 텍스트 값으로 표현될 때나 문자열 값으로 예상되는 방식으로 object 가 참조할 때 사용됩니다.
음… 왓더..?
읽기 전에
해당 포스트는 독자가 자바스크립트의 prototype
과 prototype chain
에 대한 기본적인 이해도가 있다는 전제하에 작성된 글이다. 또한, 나도 개인 스터디에서 몰랐던 부분에 대해 짧다면 짧게 조사한 내용을 정리하는 식으로 썼으니 틀린 내용이 있다면 댓글로 정정을 해준다면 정말 고마울 것 같다. 😸