함수호출시 자동으로 암묵적으로 전달되는 값 this는 함수가 어떻게 호출되는지에 따라 binding될 객체가 동적으로 정해진다.
두 가지로 나뉜다.
해당 메소드를 호출한 객체에 바인딩된다.
즉, 점(.)앞에 객체를 this가 참조한다.
하지만 함수가 호출되는 것인지 정확히 판단해야 한다.
생성자 함수에 바인딩 된다.
정확히는 생성자 함수가 만든 빈 객체를 참조한다.
this를 특정객체에 명시적으로 바인딩하는 방법으로, 함수의 메소드이다.
arrow function 내에서는 일반함수와 달리 고유한 this를 가지고 있지 않는다.
이때 arrow function 을 가지고 있는 함수, 즉 arrow function의 바로 상위 컨텍스트에 있는 함수의 this를 가져온다. (외부 렉시컬 환경에서 찾아 옴)
-> 별개의 this가 만들어지는 걸 원하지 않을때 사용.
하지만 arguments 사용못함, new 와 함께 사용불가(this가 없기때문에)