일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- click and drag
- 티스토리꾸미기
- 폰트적용하기
- const 단언문
- react
- 타입좁히기
- 2022
- TSDoc
- 제네릭
- 커스텀
- JS console
- 개발콘텐츠
- reactjs
- typescript
- NonNullable
- 반복줄이기
- utilty type
- 리액트
- React.js
- 타입스크립트
- vue.js
- javascript
- 공통컴포넌트
- 성능최적화
- 레이아웃쪼개기
- 누구나 자료구조와 알고리즘
- Chart.js
- CSS
- React Native
- returnType
- Today
- Total
몽땅뚝딱 개발자
[Javascript/ES6+] 화살표 함수 본문
출처
🚀 화살표 함수
◽ 화살표 함수 구조
function을 =>로 표기한다. 이 것이 전부가 아니라 구조가 다르다.
◽ 화살표 함수와 this
- strict 모드에서 함수를 호출할 때 함수 앞에 오브젝트 작성은 필수이다.
ex) window.book(); // 이렇게 하지않으면 undefined
- 화살표 함수에서는 this가 글로벌 오브젝트를 참조하기 때문에 오브젝트를 적어주지 않아도 된다.
- 화살표 함수는 함수에 this를 갖고 있지 않지만, this는 window 오브젝트를 참조하기 때문에 글로벌 변수의 값을 알 수 있다.
◽ this가 정적 스코프 참조
화살표 함수에서 *정적 스코프의 this를 사용한다.
* 정적 스코프: 엔진이 해석될 때 화살표 함수를 만나면 Function Obejct를 생성하는데 화살표 함수가 속한 스코프를 생성한 오브젝트에 바인딩한다.
오브젝트에 바인딩된 스코프의 this를 화살표 함수에서 this로 사용한다.
함수가 안에 변수가 없으면 밖에서 변수를 찾듯이, 화살표 함수에서는 스코프가 그러하다.
var title = "책";
// book Object에 설정된 스코프의 this를 화살표 함수에서 this로 사용한다.
// book Object가 글로벌 오브젝트에 설정되므로 this가 window 오브젝트를 참조하게 된다.
const book = {
show: () => console.log(this.title);
};
book.show();
◽ 화살표 함수와 인스턴스
인스턴스에서 화살표 함수의 작성 위치에 따라 this가 참조하는 오브젝트가 다르다.
◽ 화살표 함수의 특징
- prototype과 constructor가 없기때문에 가볍다.
- 생성자가 없으므로, new로 인스턴스를 생성할 수 없다.
- this가 없다. 화살표 함수가 속한 스코프의 this를 화살표함수가 바인딩하고 그것을 this로 사용한다.
- 일반 함수는 call()로 참조를 바꿀 수 있지만, 화살표 함수는 참조가 바뀌지 않는다.
- 메소드보다는 함수로 사용하는 것이 효율성이 좋다.
'Development > Javascript' 카테고리의 다른 글
[Javascript/ES6+] Spread(전개연산자) (0) | 2021.07.07 |
---|---|
[Javascript/ES6+] 이터레이션 / 이터러블 / 이터레이터 (0) | 2021.07.07 |
[Javascript/ES6+] Default Value (0) | 2021.07.07 |
[Javascript/ES6+] Destructuring(구조분해문법) (0) | 2021.07.07 |
[Javascript/ES6+] getter, setter (0) | 2021.07.07 |