new의 동작방식
javascript에서는 new 연산자를 통해 함수를 생성자로 호출할 수 있고, 그에 따라 새로운 객체를 생성할 수 있다.
function Func() {}
const makeNew = new Func();
- 빈 객체 생성 {}
- [[Prototype]] 속성을 생성자 호출할 함수의 prototype 속성으로 지정
> 여기서는 해당 객체의 [[Prototype]] 을 Func.prototype으로 지정 - 객체를 생성하고 이 객체를 this로 지정
- 함수를 호출하고 해당 함수의 this로 위에서 지정한 객체를 사용
> Func() 을 호출하고 이 함수에서 this를 위 객체로 지정 - 함수의 리턴값이 원시값이라면 새로 만들어진 객체가 리턴되고, 리턴값이 객체라면 해당 객체를 리턴
> 함수의 리턴값이 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 |