JavaScript - new.target


function Person(name){
  if(this instanceof Person){
    this.name = name
  }else{
    throw new Error('new 연산자를 사용하세요.') //Person을 그냥 함수로 호출하면 에러 출력하게
  }
}

Person(1)//에러 this 가 window가 됨.

new Person(1)

var p4 = Person.call(p1, '')
console.log(p4) //에러안 남. this를 p1으로 들어가기 때문에. 근데 undefined로 남아 있ㅇㅁ

new.target // 자체가 하나의 변수라고 생각하면 됨

function Person (name){
  console.dir(new.target);
  if(new.target !== undefined){
    this.name = name
  }else{
    throw new Error('new 연산자를 사용하세요.')
  }
}

const a = new Person(10);