Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
Tags
- 제네릭
- 커스텀
- 반복줄이기
- React.js
- 폰트적용하기
- utilty type
- CSS
- reactjs
- 타입스크립트
- returnType
- 리액트
- 개발콘텐츠
- React Native
- TSDoc
- javascript
- const 단언문
- 성능최적화
- 레이아웃쪼개기
- JS console
- vue.js
- 티스토리꾸미기
- react
- click and drag
- 공통컴포넌트
- 타입좁히기
- 누구나 자료구조와 알고리즘
- typescript
- NonNullable
- Chart.js
- 2022
Archives
- Today
- Total
몽땅뚝딱 개발자
[JavaScript] call, bind, apply의 차이 본문
함수를 괄호 ()로 호출하는 방법도 있지만 자바스크립트에서는 두 가지 방법(call, apply)을 추가로 제공한다. call, apply는 this를 첫번째 인자로 넘겨 한정할 수 있다.
◽️ call
함수 안에서 값을 this로 한정(여기서는 null)하며 두번째 인수를 펼쳐 전달하지 않고 순서대로 전달한다.
const user = {
age: 12
}
function test() {
console.log(this.age)
}
test.call(age) // 12
◽️ apply
함수 안에서 값을 this로 한정(여기서는 null)하며 두번째 인수를 펼쳐 함수에 매개변수로 전달한다.
function add(a: number, b: number): number {
return a+b
}
add(10, 20)
add.apply(null, [10, 20]) // 30
◽️ bind
함수를 실행하지 않고 함수를 리턴한다.
영구적으로 this를 바인딩한다.
function add(a: number, b: number): number {
return a+b
}
add(10, 20)
add.bind(null, 10, 20)() // 30
로그도 줄여쓸 수 있다.
const log = console.log.bind(document);
log('hi~')
출처
보리스 체르니, 타입스크립트 프로그래밍 (프로그래밍 인사이트, 2020)
call, apply, bind의 차이
binding의 개념과 call, apply, bind의 차이점
개인적으로 공부한 내용을 정리하는 블로그로
잘못된 개념을 게시하지않도록 주의하고 있으나 오류가 있을 수 있습니다.
'Development > Javascript' 카테고리의 다른 글
[JavaScript] 이렇게도 사용할 수 있다! (1) (0) | 2023.03.12 |
---|---|
[JavaScript] AWS S3 첨부파일 다운로드 구현 (작성 중) (0) | 2023.03.09 |
[JavaScript] !! (논리연산자) (0) | 2023.02.20 |
[JavaScript] Promiss.all / Promiss.race (0) | 2022.11.21 |
[JavaScript] for문의 여러 형태 (0) | 2022.11.17 |
Comments