inflearn logo
강의

講義

知識共有

Javascript ES6+を正しく学ぶ - 初心者

new.target

에로우함수 new.target

208

enere61636

投稿した質問数 40

0

function Person (name) {

  const af = n => {

    this.name = n

    console.log(new.target)

  }

  af(name)

}

const p1 = new Person('재남')

const p2 = Person('성훈')

const p2 같은경우는 new연산자를 안써서 기본적으로 외부함수로 객체도 생성이 안되서 내부함수도 new.tartget이 바인딩안되서 외부함수를 보는데 아무것도 없어서 console창에 아무것도 없는건가요?

javascript es6

回答 2

0

jaenam

1. 그게 아니라 arrow function은 this 바인딩도 무시하고, new.target도 무시합니다.
따라서 arrow function 내부에서 new.target의 값을 찾으려다가 없으니
스코프체이닝상 상위 스코프를 찾아가고, 거기서도 없으니 undefined가 출력되는 겁니다.

2. 네

0

enere61636

그리고 new.target을 쓰면 장점이

마지막에 추상클래스처럼 흉내 내는거하고 

또 function Person (name) {

  console.log(new.target)

  if (new.target === Person) {

    this.name = name

  } else {

    throw new Error('Person 생성자함수를 new로 호출해야 해요!')

  }

function Android (name) {

  Person.call(this, name)

}

const p1 = new Android('재남봇')

이럴때 call함수 못쓰게 하고 new연산자를 강제 시키는것일까요?

프로토타입 체이닝에 대해서

0

377

1

react 사용할 때 destructuring assignment라고 하는거 진짜 많이 사용 했는데 신기합니다.

0

521

1

2023-10-30일 기준 Object Rest/Spread Properties 적용 됬나봐요. 짱신기

0

337

1

제가 이해한 부분이 혹시 맞는지 알 수 있을까요?

0

311

2

블록스코프 내에서 펑션을 선언해서 사용하는경우가 있나요?(실무)

0

347

1

클래스에서 화살표함수?

0

1221

2

default parameter TDZ

0

279

1

강의 자료

1

305

2

전개 연산자 얕은 복사 질문

0

277

1

궁금한게 있는데요 ..

0

307

2

궁금한게 잇는데요 여기서 this는 array값을 출력해주나요?

0

359

1

template literal 강의에서의 reduce 메소드

0

312

2

다운로드 받은파일

0

286

1

const 이럴때도 사용하나요?

0

386

1

순서정렬

0

235

1

함수선언문 말고 arrow function

0

261

1

this바인딩 질문

1

266

1

함수표현식질문

0

224

1

rest parameter장점

0

312

1

if(exps[i])

0

192

1

좋은강의 감사합니다 이거는 호이스팅이 실행안되는거 같은데

0

305

3

해체하여 적용하려는 대상은 해체하는 대상의 타입에 매칭해야하나요?

0

173

1

강의노트 없습니다.

0

232

1

강의노트를 열면 텍스트가 다 깨집니다.

0

160

2