바닐라코딩 사전학습/JS
new 예약어
꼬마보노
2021. 12. 27. 21:23
생성자 함수를 작성할 때 new 예약어를 사용해서 작성하게 된다.
그렇다면 new 예약어를 사용하면 무슨일이 일어나는걸까?
new 예약어를 사용하면
- 새로운 빈 객체를 만든다
- this를 새로 만들어진 객체에 bind한다
- 새로 만들어진 객체에 "__proto__""라 불리는 property를 더한다. 이것은 생성자함수의 prototype객체를 의미한다.
- 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를 전달하자.
위 코드를 실행하면
- 새로운 객체를 만들어낸다 - first 객체
- this는 first 객체에 bind된다. 때문에 this에 대한 참조를 first를 향할 것이다.
- __proto__가 추가된다. first.__proto__는 이제 student.prototype을 가리킨다.
- 모든 것이 완료된 후에 새로운 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