개발/JavaScript
[JavaScript] 생성자
미니시리
2022. 9. 11. 16:02
객체를 생성하는 함수를 생성자 함수라고 부릅니다. 다른 언어에서는 class가 있즈민 자바스크립트에서는 없기 때문에 생성자 함수를 이용하여 그 역할을 대신 합니다.
생성자 함수의 필요성
- 여러개의 동일한 프로퍼티를 가지는 객체를 생성하기 위해서 필요.
- Prototype을 이용하여 메모리 절감을 위해서 필요.
생성자 함수의 형태
- 생성자명 : 대문자로 시작 (일반 함수와 구별을 하기 위한 암묵적인 규칙? 관례)
- 내부의 식별자 선언(var 식별자) 없음
- 내부의 메소스 선언(var 식별자 = function (){}) 없음
- "this.프로퍼티"를 통해서 프로퍼티 명시만 가능
생성자 함수의 사용법
- new 키워드를 통하여 생성자 함수를 호출한다.
- ex) var 생성자 = new 생성자명();
- 생성자 함수 생성 과정 분석
- new 키워드는 빈 객체 {}를 생성 합니다.
- 생성자 함수는 빈 객체에 생성 할 프로퍼티를 정의합니다.
- 함수의 인수들을 프로퍼티에 할당합니다.
- 생성된 Student 객체를 student에 할당합니다.
생성자 함수에서 사용되는 함수 정의
1. 생성자 내부에 함수 정의
function Student(_name, _math, _eng) {
this.name = _name,
this.math = _math,
this.eng = _eng,
this.score = function allinfo() {
return "Student name :" +
this.name + "score math : " + this.math + "eng : " + this.eng;
}
}
//출력 결과 : Student name :영수score math : 93eng : 11
2. Prototype을 사용한 함수 정의
function Student(_name, _math, _eng) {
this.name = _name,
this.math = _math,
this.eng = _eng
}
Student.prototype.score = function allinfo() {
return "Student name :" + this.name +
"score math : " + this.math + "eng : " + this.eng;
}
// 출력 결과 : Student name :영수score math : 93eng : 11