티스토리 뷰
자바스크립트 call , apply ,bind 예시 코드
javascript 함수호출시 사양되는 call, apply, bind를 코드예시를 통해 알아보겠습니다.
@ call 사용예시
const mike = {
name: "Mike",
};
function showThisName() {
console.log(this.name);
}
function update(birthYear, occupation) {
this.birthYear = birthYear;
this.occupation = occupation;
}
showThisName.call(mike); // this에 mike를 할당해준다.
update.call(mike,1999,"singer") // 매개변수를 순서대로 받는다.
console.log(mike)
/* 출력
Mike
{
birthYear: 1999
name: "Mike"
occupation: "singer"
}
*/
@ apply 사용예시
const tom = {
name: "Tom",
};
function update(birthYear, occupation) {
this.birthYear = birthYear;
this.occupation = occupation;
}
update.apply(tom, [1990, "dancer"]); // 두번빼 매개변수로 배열을 넣어주면 차례대로 인수로 사용한다.
console.log(tom)
/* 출력
Mike
{
birthYear: 1990
name: "Tom"
occupation: "dancer"
}
*/
@ bind 사용예시 - 1
const mike = {
name: "Mike",
};
function update(birthYear, occupation) {
this.birthYear = birthYear;
this.occupation = occupation;
}
const updateMike = update.bind(mike);
updateMike(1980, "police");
console.log(mike);
/* 출력
Mike
{
birthYear: 1980
name: "Mike"
occupation: "police"
}
*/
@ bind 사용예시 - 2
const user = {
name: "Mike",
showName: function () {
console.log(`hello, ${this.name}`);
},
};
user.showName(); // hello, Mike
let fn = user.showName; // . 이전이 this 값이다.
fn(); // hello, -> 재할당되면서 this값을 잃었다.
let boundFn = fn.bind(user); // this값을 user로 bind해준다.
boundFn(); // hello, Mike
'개발일기 > JS' 카테고리의 다른 글
[JS] JAVASCRIPT 배열 초기화하는 방법 (0) | 2022.03.06 |
---|---|
[JS] Javascript ES6 Class , extends 예시코드 (0) | 2022.02.21 |
[JS] ES6 제너레이터 알아보기. (0) | 2022.02.20 |
[JS] Javascript 모달창 상태에 따른 스크롤 막기, 풀기 (1) | 2022.02.20 |
[JS] FormData에 다차원 object append하기 (0) | 2022.02.19 |
댓글
250x250
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- zep
- 실기CBT
- 산업안전기사
- 게더타운맵
- 모두CBT
- 전자기학
- 전기기사실기CBT
- 산업안전기사 실기
- React
- 전력공학
- 개더타운
- gathertown
- 전기기사필기
- cbt
- 전기기사실기단답
- shortid
- 산안기 합격률
- dummydata
- JavaScript
- TypeScript
- 전기공사기사
- 게더타운
- TS
- 전기산업기사
- KEC반영
- 전기기사 필기
- 전기기기
- 전기기사
- nextjs
- fakerjs
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
글 보관함