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/>

반응형