자바스크립트의 클래스와 생성자의 강제적 호출
1. 클래스
- 자바스크립트는 클래스가 존재하지 않는다. 그렇기 때문에 함수를 이용하여 클래스를 정의한다
1) 정의 법칙
a. 이름은 대문자로 시작
b. 프로퍼티는 this.이름
- this는 생성된 인스턴스를 가리킨다
c. 메소드는 함수형 프로퍼티
- 값이 함수 객체인 프로퍼티를 메소드로 동작시킴
- 메소드를 생성자에 정의하는 것은 효율적으로 좋지않다(프로토타입 사용)
d. 반환값은 필요없다
2. new 키워드 없이 객체 인스턴스 생성?
1) 문제 : 만약 new 키워드 없이 객체를 만들려고 한다면 어떻게 될까?
- 실행결과 : undefined, Hee, error
- new 키워드가 없다면 그건 생성자가 아닌 보통 함수가 되어버린다
- Person 객체는 생성되지 않고, 전역 변수 name이 생성된다
2) 해결
- 이런 new 키워드 실수를 방지하고자 생성자 안에 임의 소스를 삽입한다
- this는 전역객체 혹은 undefined일 것이다
- this를 이용하여 Person 객체가 아니라면 자동으로 new 로 객체를 만드는 소스를 삽입한다
'Javascript > Core' 카테고리의 다른 글
[Javascript] 자바스크립트 n(2,8,16....) 진수 구하기 (0) | 2016.12.25 |
---|---|
[Javascript] 객체 판단 (instanceOf, isPrototypeOf , In) (0) | 2016.12.23 |
[Javascript] This 와 call(), apply() (0) | 2016.12.21 |
[Javascript] 익명의함수 call(this)? (0) | 2016.12.20 |
[Javascript] 지정된 함수 인수 (0) | 2016.12.20 |