Notice
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 | 29 |
30 | 31 |
Tags
- react-query v5
- SSR
- state 관리
- 기술낙서장
- 캡스톤디자인 후기
- 더블엔씨
- React.JS
- 사내 오류 해결
- no router instance found
- router instance
- 사내 이슈
- react-query 도입후기
- node.js
- 기술 낙서장
- state 사용하기
- react-query&Next.js
- Next.js
- MSW
- javascript
- JS변수
- react-query
- nextjs
- 일상 생각
- React
- TypeScript
- SW캡스톤디자인
- 결제페이지
- 사내 오류 대응
- 리액트
- ClientSide
Archives
- Today
- Total
코딩을 잘하고 싶은 코린이 동토니
Arrow function 과 일반 function 의 this 본문
Es6가 나오면서 새로운 함수형이 나오게 되었는데 바로 Arrow function 즉 화살표 함수가 새로 등장하게 되었다.
기존 함수의 역할을 기본적으로 대체할 수 있으며 가독성과 작성하기도 편해서 주로 많이들 사용하곤 한다.
근데 화살표 함수가 일반함수의 모든것을 대체할 수는 없다.
특히나 this를 사용하게 되었을 때 화살표함수와 일반 함수가 가리키는 this가 다르다
아래 예제를 한번 보자.
function BlackDog(){
this.name = "흰둥이";
return {
name : "검둥이",
bark : function(){
console.log(this.name + " : 멍멍");
}
}
}
const blackDog = new BlackDog();
blackDog.bark();
위의 함수는 일반 함수로 bark라는 함수를 호출했다 결과는 어떻게 될까?
결과는 검둥이 : 멍멍 을 호출하게 된다.
그럼 다음 예제를 보자
function BlackDog(){
this.name = "흰둥이";
return {
name : "검둥이",
bark : () => {
console.log(this.name ": 멍멍")
}
}
}
const blackDog = new BlackDog();
blackDog.bark();
위의 예제의 결과는
흰둥이 : 멍멍 이 나오게 된다.
즉 일반 함수와 화살표함수에서의 this가 가리키는 값들이 서로 다르다는 것을 알수있다.
정리를 하자면 일반함수의 this는 자신이 종속된 객체에 접근하게되고
화살표함수의 this는 자신이 종속된 인스턴스를 가리키게 된다.
컴포넌트를 형성함에 있어서는 두개의 형태가 큰 차이점은 없지만 일반 함수로서의 역할에서 두개가 서로 용도가 다르게 사용된다라는 것을 알 수있다.
'Web > JavaScript' 카테고리의 다른 글
React-Query V5 변경점 정리 (0) | 2024.09.02 |
---|---|
react-query fetch status에 관한 고찰 (2) | 2024.09.02 |
JS 변수 (0) | 2022.01.05 |