-
apply,call,bind 비교맨땅에코딩/javascript 2020. 9. 11. 14:39
1. apply, call
: apply와 call은 주어진 this 값과 유사배열로 제공되는 arguments 로
"함수를 호출" 할 때 사용한다.
사용법
const numbers = [1, 2, 6, 4, 5]; const max_apply = Math.max.apply(null, numbers); const max_call = Math.max.call(null,numbers[0],numbers[1]); console.log(max_apply,max_call); // expected output: 6,6
#첫번째 인자로 들어가는 thisArg 의미?
: 함수를 호출하는데 제공되는 this의 값 (예제에서 변경가능)
const fn = { str : "gildong", say : function(){ console.log("hi!"+this.str); } } fn.say(); //expected : hi!gildong fn.say.call({str:"minsu"}); // expected : hi!minsu
2. bind vs apply,call
: apply와 call은 새로운 함수를 생성후 호출하지만 bind는 새로운 함수를 생성하여 반환만 한다.
const fn = { str : "gildong", say : function(){ console.log("hi!"+this.str); } } fn.say(); //expected : hi!gildong fn.say.call({str:"minsu"}); // expected : hi!minsu ///////////////bind////////////////////////// const say_bind = fn.say.bind({str:"minsu"}) say_bind(); // expected : hi!minsu
'맨땅에코딩 > javascript' 카테고리의 다른 글
[ES6] WeakSet vs Set [번역] (0) 2020.08.09 [ES6] WeakMap vs Map [번역] (0) 2020.08.09 [ES6] Set vs Array 비교 [번역] (0) 2020.08.07 [ES6] Map vs Object 비교 [번역] (0) 2020.08.07 [ES6] var, let, const 비교 (0) 2020.06.26