작성
·
188
4
안녕하세요 강의를 수강하면서 제가 이해한 것이 맞는지 질문 드려요 !
Number, String 등과 같이 Javascript 에서는 빌트인 된 기본적인 객체를 재공한다.
EX ) var userNum = new Number("123");
위와 같이 제공 되는 기본적인 객체를 사용하여 생성한 인스턴스는 생성하게 될 때 객체의 프로토 타입을 복사하여 생성한다.
해당 프로토 타입은 함수와 프로퍼티로 구성되어 있으며 예를 들어 toString 이라는 프로퍼티의 키 값으로 접근 하면 해당 키 값과 대응되는 함수가 동작을 하게되여 파라미터를 넘겨주게 되면 인스턴스의 프리미티브 벨류인 값을 함수가 문자열로 변환 하여 반환한다. 라고 정리를 하였는데 옳바르게 정리한 것 일까요 ? ㅎㅎ
답변 3
1
아하 그러면 인스턴스는 prototype 의 메모리 주소 (C의 포인터 개념) 를 저장하며 저장 된 메모리의 주소를 참조하는 형태로 메모리를 아끼면서 prototype에 있는 프로퍼티 or 매서드를 사용한다고 보면 되는 건가요 ?
답변 감사합니다 !!
0
0
전체적으로 이해를 하셨고, 의미 전달이 됩니다.
이렇게 논리적으로 접근하면 튼튼하게 기본이 만들어 집니다.
아래 작성한 함수와 메소드 차이만 정리하면 되겠습니다.
Number, String 등과 같이 Javascript 에서는 빌트인 된 기본적인 객체를 재공한다.
==> 맞습니다.
위와 같이 제공 되는 기본적인 객체를 사용하여 생성한 인스턴스는 생성하게 될 때 객체의 프로토 타입을 복사하여 생성한다.
==> 맞습니다. 지금은 복사라고 해도 되지만, 조금 지난 후에는 참조할 수 있는 환경을 만든다로 이해해 주세요.
그 많은 것을 복사하면 메모리가 모자라므로 prototype이 있는 메모리 주소를 참조할 수 있도록 만듭니다.
해당 프로토 타입은 함수와 프로퍼티로 구성되어 있으며
==> 해당 프로타입(prototype)은 메소드와 프로퍼티로 구성되어 있으며 ::: prototype에 연결된 function을 강좌에서는 메소드라고 하며, prototype에 연결되지 않은 function을 함수라고 합니다.
예를 들어 toString 이라는 프로퍼티의 키 값으로 접근 하면 해당 키 값과 대응되는 함수가 동작을 하게되여 파라미터를 넘겨주게 되면 인스턴스의 프리미티브 벨류인 값을 함수가 문자열로 변환 하여 반환한다.
==> 내용이 조금 어려울 수도 있는데, 정확하게 이해하셨네요.^^
==> 키 값과 대응되는 함수가 동작을 하게되여 ::: 키 값이 function이므로 메소드(함수)로 동작하게 되며