-
This 판별하기Java Script 2021. 3. 26. 16:41
This 는 공부해도 해도 헷갈린다...!
ㅋ님의 강의 + 책을 참고해서 공식을 적어보면 좀 덜 헷갈릴까....?
This 는 함수가 호출되는 방식에 따라 참조하는 객체가 달라진다.
1. Regular Function call ( function (); )
- Strict mode 가 아니면 -> 브라우저에서는 window, 런타임 환경에서는 global.
- Strict mode 라면 undefined.
2. Dot notation ( something.function(); )
- .function 앞의 객체로 찾아가서 참조.
3. Call / Apply / Bind
- 위 세 가지는 this 에 사용가능한 메소드들이다.
- Call과 Apply는 둘 다 첫 번째 인자를 this 값으로 바인딩한다.
- function.call(somthing, 1, 2, 3);
- function의 this를 something으로 정해주고, 나머지 인자들(1, 2, 3) 은 function에 전달해준다.
- function.apply(something, [1, 2, 3]);
- function의 this를 something으로 정해주고, 그 뒤의 배열을 function에 전달해준다.
- function.call(somthing, 1, 2, 3);
- Bind는 새로운 함수를 반환하며, 인자로 전달된 값을 this로 삼는다.
- 다만 bind는 새로운 함수를 반환하기 때문에, 반환된 새로운 함수가 실행될 때까지 원본 함수가 실행되지 않는다!!!
4. New 키워드
- this의 값은 새로운 빈 객체가 된다.
'Java Script' 카테고리의 다른 글
커링_ Currying (0) 2021.05.06 Toy project - 카드맞추기 게임 (0) 2021.04.14 Toy Project - 계산기 (0) 2021.04.14 CSS property의 순서 (0) 2021.03.25 innerHTML, textContent, innerText (0) 2021.03.18