Constructor Function(생성자 함수)

하태현·2020년 11월 14일
0

javascript

목록 보기
10/23
post-thumbnail

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의 인스턴스 이다.

profile
왜?를 생각하며 개발하기, 다양한 프로젝트를 경험하는 것 또한 중요하지만 내가 사용하는 기술이 어떤 배경과 이유에서 만들어진 건지, 코드를 작성할 때에도 이게 최선의 방법인지를 끊임없이 질문하고 고민하자. 이 과정은 앞으로 개발자로 커리어를 쌓아 나갈 때 중요한 발판이 될 것이다.

0개의 댓글