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
- 클론코딩
- 매클로태스크
- 로드마크
- 비동기 작업
- Call stack
- pushstate
- fetch 취소
- 호이스팅
- JavaScript
- 넘블
- 호출 스택
- 웹팩
- Lexical environment
- 자바스크립트
- 마이크로태스크
- 유사배열
- 렉시컬 환경
- relatedTarget
- webpack
- localtunnel
- 로컬터널
- AbortController
- 번들러
- debounce
- 함수형
- 이벤트 루프
- 화살표 함수
- 이터러블
- hoisting
- 실행 컨택스트
Archives
- Today
- Total
내가 보려고 만든 개발 공부 일지
call() 과 apply() 의 this 바인딩 본문
기본형태는 아래와 같다.
someFunction.call([thisObj[, arg[, arg2[, ...]]]])
첫번째 인자 thisObj 는 someFunction 의 this로 사용될 객체이다.
그 뒤로는 함수내에서 추가로 쓰일 파라미터 값들이다. ( 선택사항 )
예제 )
var obj = {
z : "zzz",
a : "aaa",
b : "bbb"
}
var test = function(arg1 = "test1", arg2 = "test2"){
console.log(`p1 : ${this.a} / p2 : ${this.b} / arg1 = ${arg1} / arg2 = ${arg2}`);
}
test.call(obj, 123, 456);
// 결과 --> p1 : aaa / p2 : bbb / arg1 = 123 / arg2 = 456
위 예제에서 .call() 첫번째 인자로 obj를 넘겨주고 있다. 그래서 test 함수의 this는 obj를 가리키게되어 this.a 가 obj.a 가 된것이다.
arg1, 2 는 추가로 전달받은 인자값들이다. ( = obj 의 this를 test의 this로 바인딩 )
apply() 는 call() 과 똑같다.
한가지 차이점은 thisObj 이후 던지는 인자값을 배열로 넘긴다.
ex)
test.call(obj, [123, 456]);
'Javascript' 카테고리의 다른 글
Javascript - in vs hasOwnProperty (0) | 2021.07.12 |
---|---|
Javascript - 프로토타입? (0) | 2021.07.12 |
Falsy / Truthy 한 값 (0) | 2021.07.02 |
Tagged Templates (0) | 2021.07.02 |
Javascript 객체의 복사 (0) | 2021.07.02 |
Comments