본문 바로가기
JS/JS 핵심 개념

JS 생성자

by spare8433 2023. 3. 13.

생성자

 

생성자란 앞에 new 연산자가 붙은 함수를 의미하며 동일한 프로퍼티와 메소드를 가진 다수의 인스턴스를 만들 수 있습니다.

 

new Object(), new Array() 등등 자바스크립트의 내부적으로 존재하는 내장 생성자 및 직접 새로운 타입을 만들 수도 있습니다.

 

function MyOwn() { }

var myObj = new MyOwn();

console.log(myObj instanceof MyOwn);        // true
console.log(myObj.constructor === MyOwn);    // true



new 연산자의 역활

 

new 연산자가 붙으면 함수의 this 는 인스턴스를 참조하게 되며, new 연산자가 자동으로 인스턴스를 반환하기 때문에 함수안에 return 연산자도 필요 없어지게 됩니다.

 

※ 만약 생성자 함수에 new 연산자가 없다면

  • 생성자 함수는 단순히 평범한 함수일 뿐이며, this 는 전역객체를 가르키게됩니다

 

function Food(name) {

    console.log(this.constructor)

    this.name = name;
    this.smell = function () {
        console.log(this.constructor);
    }
}

var myFood1 = new Food("특재 파스타");    // function  Food(name) {...}
var myFood2 = Food("특재 파스타");        // function  Window() {...}

 

참고

https://www.inflearn.com/course/%EC%BD%94%EB%94%A9%EC%9D%B8%ED%84%B0%EB%B7%B0-js-%EC%96%91%EC%84%B1%ED%95%99%EA%B5%90

'JS > JS 핵심 개념' 카테고리의 다른 글

JS 프로토타입 상속 & subtype, supertype  (0) 2023.03.13
JS 프로토타입  (0) 2023.03.13
JS closure 함수  (0) 2023.03.13
JS this 개념 및 활용  (0) 2023.03.03
JS 타입 이해  (0) 2023.03.03