본문 바로가기

개발일지

bind와 화살표함수로 this의 남은부분 이해하기

20180202

날짜 : 2018. 02. 02.(금)

bind와 화살표함수로 this의 남은부분 이해하기

들어가기에 앞서

이 포스트는 하단에 있는 링크의 글들을 읽고 정리한 글 입니다. 제 실력이 부족하여 도움이 못 될 경우에는 아래의 링크를 참고해 주시기 바랍니다.

본문

이글을 작성하게 된 동기

  1. 어제 글에서 하지 못한 나머지 부분을 이야기 하기 위해. (bind를 잘 사용하고 싶다.)

새로나오는 용어

  1. Function.prototype.bind
  2. 화살표함수(arrow function)

개념

  1. bind란.

    • execution context를 바꾸어 주는 기능.
    • Function.prototype의 상속을 받아서 모든 함수뒤에 bind를 사용할 수 있다.
    • argument 값으로 바꾸어 주고 싶은 this의 값과, 호출하는 함수의 인자값을 넣는다.
    • return 값으로 함수를 반환한다.
    • 반환된 함수(바인딩된 함수)는 call, apply로 execution context를 변경할 수 없다.
  2. 화살표 함수란.

    • 익명함수.
    • 화살표 함수의 this는 선언될 때의 execution context를 따른다. (바인딩 된다.)
    • 화살표 함수의 this는 call, apply로 변경할 수 없다.
    • 전역문맥에서 화살표 함수가 선언되면 this는 window이다.

앞으로 어떻게 해야할까?

  1. 화살표 함수를 사용할 수 있는곳은 화살표 함수를 먼저 사용하도록 하자.
  2. bind는 이전에 작성한 코드를 다시 보고서 제대로 이해했는지 검사해 보자.

함수가 어떻게 실행되는 가에 따라서 this는 달라진다. 화살표함수는 정의된 문맥의 값이 this이다.

참고한 사이트

  1. FEdevelopers wiki