더북(TheBook)

3.4.1 기본 객체 프로토타입

앞 절의 객체 리터럴은 저절로 내장 객체 Object.prototype에 연결된다. 다음 chimp 객체를 보자.


var chimp = {
hasThumbs: true,
swing: function() {
  return '나무 꼭대기에 대롱대롱 매달려 있네요';
}
};

toStringchimp 객체에 없는 함수지만, 다음 코드를 실행해도 undefined 함수 에러는 나지 않는다.

chimp.toString();

 

콘솔에는 chimp 객체가 문자열로 표현된다(별로 서술적이지 않은 '[object Object]').

chimp.toString()을 호출하면 자바스크립트 엔진은 chimp 객체에 직접 구현된 toString 함수가 없다는 사실을 알고 나서, chimp의 프로토타입인 Object.prototype을 찾아보고 여기에 정의된 toString 함수 프로퍼티를 발견한다. 이렇게 어렵사리 찾은 함수의 실행 결괏값을 반환하는 것이다.

TIP

Object.prototype에는 유용한 함수가 많다. 전체 목록은 다음 사이트를 참조하자.

https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/prototype

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.