but bind메소드를 이용해서는 호출과 무관하게 묶을 수 있다.
예시
myWhoAmI와 someone.whoAmI가 같지만
다른결과가 나오게 된다.
전자에서는 someone을 가르키는 반면 후자의 경우는 windows전역을 가르키게 된다.
왜??
여기서는 직접 호출하는 놈이 누구인지를 봐야 한다.
someone.whoAmI에서는
someone이 whoAmI를 호출하였고
myWhoAmI에서는
windows.myWhoAmI와 동일하고 windows가 호출 한 것이다.
결론
호출한 놈(객체) === this
1번에서 봤던 오브젝트 내의 함수를 메소드라고 한다.
this를 오브젝트 내 함수(메소드)안에서 쓰면 그 함수를 가지고 있는 오브젝트를 뜻한다.
그래서 someone.whoAmI()를 호출하면 whoAmI를 가지고 있는 오브젝트가 나온 것이다.
화살표 함수에서 this를 사용하면 this값이 나오지 않는다.
왜??
화살표 함수의 경우에는 this값을 만들어주지 않고 함수 밖에 있던 거 그대로 사용함.
즉 상위값의 this값을 가진다.
여기서 this값은 외부의 this값인 windows를 받고
여기서 2번 this값은 외부의 this값인 1번 this의 값을 받게 된다.
화살표 함수의 장점은 call, bind등 이런거 안써도 됨