-
생성자 함수
- 함수의 이름의 첫글자는 대문자로 시작
- 반드시 new 연산자를 붙여 실행한다.
function User(name, age) { this.name = name; this.age = age; } var user = new User('youbin', 32); console.log(user.name); // youbin console.log(user.age); // 32
new User(...)를 써서 함수를 실행하면 아래와 같은 알고리즘이 동작한다.
- 빈 객체를 만들어 this에 할당한다.
- 함수 본문을 실행한다.
- this에 새로운 프로퍼티를 추가해 this를 수정한다.
- this를 반환한다.
function User(name, age) { // this = {}; 빈 객체가 암시적으로 만들어진다. // 새로운 프로퍼티를 this에 추가한다. this.name = name; this.age = age; // return this; this가 암시적으로 반환된다. }
var user = { name: 'youbin', age: 32 }; var user1 = new User('juho', 34); var user2 = new User('ara', 33); var user3 = new User('kyungsik', 29); // 위코드와 아래코드는 동일하게 동작한다.
위와 같이객체 리터럴 문법으로 일일히 객체를 만드는것보다는 아래처럼 new연산자로 객체를 생성하는것이 훨씬 간단하고 재사용성이 좋다.
'Study > JavaScript' 카테고리의 다른 글
[JavaScript] 배열의 기초 (0) 2022.01.12 [JavaScript] 객체의 기초 3.내장객체 (0) 2022.01.12 [JavaScript] 함수의 기초 (0) 2022.01.12 객체의 기초 1.객체 리터럴 (0) 2022.01.12 [JavaScript] 데이터 타입 (0) 2022.01.12 댓글