Constructor Function(생성자 함수)

Constructor Function(생성자 함수)

function Person (name, age) {
  this.name = name;
  this.age = age;
}
const hth = new Person("hth", 28);
console.log(hth);

자바스크립트에서는 함수의 return값이 없으면 undefined가 반환되는데, 위 예제에서는 Person함수는return값이 없는데도 hth 변수에 어떠한 객체가 담긴다.

* 생성자 함수의 기본 return값은 this이고 일반적으로는 return값을 따로 명시하진 않는다.

객체는 어떻게 만들어 질까?

const arr = [];
const obj = {};
const func = function() {};

우리는 보통 자바스크립트에서 객체를 생성할때 위와 같이 사용한다.

const arr = new Array();
const obj = new Object();
const func = new Function();

위 예제 코드처럼 작성해도 실제로는 자바스크립트 내부적으로 아래의 예제코드와 같이 동작한다.

function foo() {
  console.log("hello");
}
const xxx = new foo();

생성자 함수의 기본 return값은 this이다. 그 this의 값은 새로운 빈 객체이다.
생성자 함수가 반환해주는 빈 객체를 Instance(인스턴스) 라고 부른다.

function Person (name, age) {
  this.name = name;
  this.age = age;
}
const hth = new Person("hth", 28);
console.log(hth);

hthPerson의 인스턴스 이다.

좋은 웹페이지 즐겨찾기