• 카테고리

    질문 & 답변
  • 세부 분야

    프로그래밍 언어

  • 해결 여부

    미해결

Object 외에 다른 타입들의 prototype

22.12.23 22:02 작성 조회수 188

1

안녕하세요, 캡틴판교님. 수강 중 궁금증이 생겨 질문 남깁니다. 제 생각이 맞는지 한번 확인해주시면 감사하겠습니다.

exam.~ 과 같은 형태는 객체의 형태와 같다고 생각합니다. 즉 우리가 흔히 쓰는 str.split(',')라던가 num.toString() 등이 모두 String 객체, Number 객체이지 않나 생각합니다.

만약 var str = "a,b"; 라고 한다면 사실은
class String(text) {
constructor(text) {
this.type = 'string';
this.__proto__ = ~~~
}
}
와 같은 형태였으며 "~"이라면 자동으로 String 객체를 리턴하는,,, 그런 느낌이지 않을까 생각해봅니다.

추가로 질문드리자면 위와 같은 형태가 맞다면 사실 toStirng이나 split 같은 내장 함수들은 String이나 Number 객체가 아닌 __proto__ 객체 안에 있다고 보는 것이 맞을 텐데 어떻게 str.__proto__.split(',')이 아닌 str.split(',') 만으로도 내장 함수를 실행 가능한지 궁금합니다.

답변 1

답변을 작성해보세요.

0

안녕하세요, 좋은 질문이네요. 질문하신 내용은 자바스크립트의 prototype chaining 관련 질문이네요. 자바스크립트는 기본적으로 속성과 메서드를 사용할 때 프로토타입 체인을 거슬러 올라가 Object에 도달합니다. 모든 원시 데이터 타입은 Object에서 파생되었어요. 그래서 str.split()을 해도 str.__proto__의 안에 있는 split() API를 참조합니다 :)