inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

실전 자바스크립트

this

마지막 예제 질문드립니다.

199

비오

작성한 질문수 55

1

일반적으로 this는 함수 호출을 할 때, 일종의 규칙들을 따라 this 바인딩이 일어나잖아요.

arrow function에서의 this는 함수 호출시, 호출부가 아니라, 호출시에 lexical scope에 따라 this가 바인딩 된다고 알고 있습니다.

마지막예제는 객체내부의 메서드를 호출할때, this는 전역을 가리키기 때문에 그렇겠죠. 

하지만 리액트에서 아래와 같이 this 바인딩을 하기도 하잖아요? 

class Foo {

  bar = () =>{  }

}

이 경우는 그냥 일반적인 생성자 함수(객체 생성) 규칙에 의해서 생성된 객체를 this로 가리키기 때문에 바인딩이 되는것인가요? 헷갈리네요 갑자기..

es6 javascript

답변 1

0

이재승

안녕하세요
화살표 함수의 this 는 화살표 함수의 호출 시 상황과는 무관하게 함수 정의 시점에 하나로 고정됩니다
(가장 가까운 일반 함수의 this 로 고정)

`class Foo` 는 (this 를 결정할 때) `function Foo` 와 같습니다
자바스크립트의 class 는 결국 일반 함수와 프로토타입으로 이루어져 있거든요

즉, bar 함수의 this 는 `new Foo()` 를 실행할 때 생성된 this 로 고정이 됩니다
(가장 가까운 일반 함수가 Foo 이므로)

프론트엔드 학습 수준 문의

0

22

2

리액트 챕터별 코드에서 eslint 설정파일이 없어요

0

38

2

최근 코테, 과제 테스트 트렌드

0

55

2

lucide react 아이콘 설치

0

35

2

17강 zustand store 서버에서 생성

1

30

1

문의관련 문의

0

37

2

next.js 를 2대이상 실행하는 경우 제공하는 cache 기능들은 어떻게 되나요?

0

47

2

yield 입력값

0

374

1

화살표함수에서 아규먼츠를 사용할수없어서 매개변수를 사용하라고 하셨는데..

0

309

1

실전자바스크립트 var문제점

0

280

1

강의 자료는 어디 있나요?

0

289

1

github에 정리좀하려고하는데, 해당 예제코드들 따로 공유가능할ㄲ요?

0

259

1

3:18 부분 질문드립니다. (lexical environment)

0

234

1

2:30초 경 그림 질문

0

342

3

constructor 질문있습니다!

0

258

2

nulish coalescing 과 optional chaining의 차이점은 무엇인가요?

0

322

1

프로토타입 예제에서 궁금한게 있습니다.

0

233

2

궁금해서 명세를 찾아봤는데요

1

204

3

2:24경 설명

1

170

1

7분42초

1

167

1

리액트 내에서 const질문입니다.

1

193

1

궁금한것이 있습니다.

1

328

1

sample 파일 예제 소스는 어디있죠 ??

1

263

1

각 함수가 실행되면

2

174

1