IT Study/JavaScript
[JS] New 생성자
짹짹체유
2023. 8. 23. 19:51
function Car(make, model, year) {
this.make = make;
this.model = model;
this.year = year;
}
var mycar = Car("Eagle", "Talon TSi", 1993);
console.log(mycar.make);
// TypeError: Cannot read properties of undefined (reading 'make') at Object
TypeError 객체나 변수의 값이 정의되지 않은 상태에서 프로퍼티를 참조할 때 발생하는 에러
-> Car 함수를 활용해 mycar에 할당한 것으로 보이지만, mycar에서는 Car 내부에 있는 .make, .model, .year과 같은 프로퍼티를 참조할 수가 없음
function Car(make, model, year) {
this.make = make;
this.model = model;
this.year = year;
}
var mycar = new Car("Eagle", "Talon TSi", 1993);
console.log(mycar.make);
// Eagle
위와 다른 점 하나 "new"
New 연산자
사용자 정의 객체 타입 또는 내장 객체 타입의 인스턴스를 생성
새로운 객체의 인스턴스를 생성하기 위해 new 연산자를 사용
new는 영역(block)을 지정하여 함수 내부의 정의된 내용을 실행해주는 것으로 이해할 수 있음
var car1 = new Car("Eagle", "Talon TSi", 1993, rand);
var car2 = new Car("Nissan", "300ZX", 1992, ken);
" new 연산자를 사용해야 함수 내부의 내용을 변수에 대입 가능 "
Function 생성자 함수
함수 생성시에도 new 생성자를 이용해서 정의
var add = new Function('x', 'y', 'return x+y');
📑참고자료
<https://developer.mozilla.org/ko/docs/Web/JavaScript/Reference/Operators/new/>
반응형