-
카테고리
-
세부 분야
웹 개발
-
해결 여부
미해결
질문있습니다.
21.08.16 21:48 작성 조회수 134
0
안녕하세요 선생님. 객체 강의까지 잘 들었습니다. 감사합니다.
질문이 있습니다.
일단, 강의에서는 Class 에 대해서는 언급만 잠깐 하고 넘어가서
개인적으로 prototype 때문에
1. 생성자함수안에 멤버함수를 정의했을때
2. 생성자함수안에 멤버변수만 정의하고, 멤버함수는 prototype 에 따로 정의했을 경우
3. Class 를 정의했을 경우를 비교해봤습니다.
[1. 생성자함수에 전부 정의했을 경우]
[2. 생성자함수만 정의하고, prototype을 통해 introduce Func 을 등록하고 객체를 생성한 경우 ]
[3. Class 에 introduce Func 정의만 해서 객체를 생성한 경우 ]
이와 같이 결과가 나왔다는 것은
클래스에서는 따로 prototype 에 공유할 Func 을 정의하지 않아도
Class 를 정의하는 과정에서 이미 그 과정을 진행한거라고 생각하는 게 맞을까요 ??
============================
추가질문으로는 Card 예제에서, Card 생성자함수 정의에서의
Card 생성자함수에 this.init( ) 이 조금 헷갈립니다.
Card 생성자함수를 "호출"하는 시점은 결국 마지막에 있는 new 연산을 만났을 때 이뤄나기 때문에
그 시점에서는 Card 생성자함수 내부에 this.init( ) 에서 init 프로퍼티에 대한 존재는 이미 알고 있기 때문에 정상적으로 호출되는 것이라고 이해해도 될까요 ??
답변을 작성해보세요.
0
1분코딩
지식공유자2021.08.23
1. 네 맞습니다. class 문법의 메소드로 정의하면, 내부적으로는 prototype 메소드로 만들어집니다. 이런 식으로 기존 동작과 같지만 편의상 추가된 문법을 Syntatic Sugar라고도 부른다네요!
2. 네 맞습니다. 미리 생성자(또는 클래스)를 세팅해두고, 필요한 시점에 인스턴스를 생성하면서 생성자 함수가 호출된다고 생각하시면 되는거죠~
답변 1