본문 바로가기
STUDY/javascript

[면접 질문] function Person(){}, var person = Person(), 그리고 var person = new Person()의 차이점?

by 3급우사기 2024. 9. 25.
function Person(name) {
  this.name = name
}

var person = Person('John')
console.log(person) // undefined
console.log(person.name) // Uncaught TypeError: Cannot read property 'name' of undefined

var person = new Person('John')
console.log(person) // Person { name: "John" }
console.log(person.name) // "John"

 

  • function Person(){}: 일반적인 함수 선언
  • var person = Person(): 생성자가 아니라 Person을 함수로 호출, undefined가 반환
  • var person = new Person(): Person.prototype을 상속받은 new 연산자를 사용하여 Person 객체의 인스턴스를 생성

참고

https://www.frontendinterviewhandbook.com/kr/javascript-questions#function-person-var-person--person-var-person--new-person%EC%9D%98-%EC%B0%A8%EC%9D%B4%EC%A0%90%EC%9D%80-%EB%AC%B4%EC%97%87%EC%9D%B8%EA%B0%80%EC%9A%94

 

JavaScript 질문 | The Official Front End Interview Handbook 2024

프론트엔드 면접 질문 - JS 질문에 대한 해설입니다. Pull Request를 통한 제안, 수정 요청 환영합니다.

www.frontendinterviewhandbook.com