constructor : 함수 선언문, 함수 표현식, 클래스

non-constructor : 메서드, 화살표 함수

 

constructor

 

// 일반 함수 정의: 함수 선언문, 함수 표현식 
function foo(){};
const bar = function(){};

// 프로퍼티 값으로 할당된 것은 일반 함수로 정의된다.
const baz = {
    x : function(){}
};


// 일반 함수로 정의된 것은 constructor함수로 생성할 수 있다.

new foo();
new bar();
new baz.x();

 

 

non-constructor

const arrow = () =>{

};
//new arrow(); arrow is not a constructor
// 메서드 축약 표현만 메서드로 인정한다.
const obj = {
    x() {}
};
//new obj.x(); obj.x is not a constructor

 

 

함수를 일반 함수로 호출하면 내부 메서드인 Call이 호출되고, 생성자 함수로써 호출하면 Constructor가 호출된다.

따라서 non-constructor함수 객체를 생성자 함수로써 호출시 에러가 발생한다.

'WEB > JS' 카테고리의 다른 글

[JS] 프로토타입 체인  (1) 2023.12.03
[JS] 프로토타입  (1) 2023.12.02
[JS] 생성자 함수에 의한 객체 생성  (0) 2023.11.28
[JS] 프로퍼티 어트리뷰트  (0) 2023.11.27
[JS] let, const키워드와 블록 레벨 스코프  (1) 2023.11.27

+ Recent posts