본문 바로가기
바닐라코딩 사전학습/JS

new 예약어

by 꼬마보노 2021. 12. 27.

생성자 함수를 작성할 때 new 예약어를 사용해서 작성하게 된다.

그렇다면 new 예약어를 사용하면 무슨일이 일어나는걸까?

 

new 예약어를 사용하면

  1. 새로운 빈 객체를 만든다
  2. this를 새로 만들어진 객체에 bind한다
  3. 새로 만들어진 객체에 "__proto__""라 불리는 property를 더한다. 이것은 생성자함수의 prototype객체를 의미한다.
  4. return this를 함수의 끝에 추가한다. 때문에 객체는 함수로부터 return되어 만들어진 것이다.
function Student(name, age) {
  this.name = name;
  this.age = age;
}

Student라는 생성자 함수를 만들었다. 이 함수는 name, age라는 두개의 파라미터를 가진다. 이 인자들은 this의 value에 프로퍼티를 만든다.

var first = new Student('John', 26);

new 예약어로 생성자 함수를 호출하자. 'Jogh'과 26이라는 두개의 arguments를 전달하자.

위 코드를 실행하면

  1. 새로운 객체를 만들어낸다 - first 객체
  2. this는 first 객체에 bind된다. 때문에 this에 대한 참조를 first를 향할 것이다.
  3. __proto__가 추가된다. first.__proto__는 이제 student.prototype을 가리킨다.
  4. 모든 것이 완료된 후에 새로운 first 객체는 새로운 first 변수에 return된다.
console.log(first.name);
// John
console.log(first.age);
// 26

 

참조)

초보자를 위한 Javascript: 'new' 예약어 (tistory.com)

 

초보자를 위한 Javascript: 'new' 예약어

JavaScript For Beginners: the 'new' operator 출처 : codeburst.io, Brandon Morelli 해당 내용은 Brandon Morelli의 article을 개인적으로 번역한 내용이며, 잘못 번역된 부분이 있을 수 있습니다. 원문은 위..

3jun.tistory.com

 

'바닐라코딩 사전학습 > JS' 카테고리의 다른 글

Windows 객체  (0) 2021.12.28
this의 4가지 역할  (0) 2021.12.27
객체 생성자 함수  (0) 2021.12.27
Call by value / Call by reference  (0) 2021.12.27
콜스택 / 메모리힙 구조, 데이터저장 / 참조 원리  (0) 2021.12.27