본문 바로가기

프론트엔드

new 연산자

new의 동작방식


javascript에서는 new 연산자를 통해 함수를 생성자로 호출할 수 있고, 그에 따라 새로운 객체를 생성할 수 있다.

function Func() {}

const makeNew = new Func();
  1. 빈 객체 생성  {} 
  2. [[Prototype]] 속성을 생성자 호출할 함수의 prototype 속성으로 지정
    > 여기서는 해당 객체의 [[Prototype]] 을 Func.prototype으로 지정
  3. 객체를 생성하고 이 객체를 this로 지정
  4. 함수를 호출하고 해당 함수의 this로 위에서 지정한 객체를 사용
    > Func() 을 호출하고 이 함수에서 this를 위 객체로 지정
  5. 함수의 리턴값이 원시값이라면 새로 만들어진 객체가 리턴되고, 리턴값이 객체라면 해당 객체를 리턴
    > 함수의 리턴값이 undefinded 원시값이므로 생성한 객체를 리턴
반응형

'프론트엔드' 카테고리의 다른 글

hasOwnProperty & hasOwn & (key) in 차이점  (0) 2022.11.04
Prototype 프로토타입  (0) 2022.11.04
Closure 클로져  (0) 2022.11.04
Hoisting 호이스팅  (0) 2022.11.02
Scope 스코프  (0) 2022.11.02