코어자바스크립트 4장 part1 ( 콜백함수 )

khw970421·2021년 2월 24일
0

코어자바스크립트

목록 보기
8/19

콜백함수

다른 코드(ex. map)의 인자로 넘겨주는 함수

ex)

Array.prototype.map(callback, thisArg)
callback : function(currentValue, index, array)

콜백함수에서의 this

콜백 함수에 별도의 this가 될 대상을 지정한 경우에는 그 대상을 참조하게 된다
(예외 : 함수가 화살표함수 일때 this는 없다)

콜백함수에서 this를 지정하지 못하는 경우에 지정하게 하는 방법 (this 우회하기)

ex)

setTimeout 함수는 콜백함수를 받으나 따로 this를 지정하는 것이 없어

전통적인 방식

var obj1 = {
  name:'obj1',
  func : function(){
    var self = this;
    return function(){
      console.log(self.name);
    };
  }
};
var callback = obj1.func();
setTimeout(callback,1000);

bind 메소드 이용

var obj1 = {
  name:'obj1',
  func : function(){
      console.log(obj1.name);
  }
};

var obj3 = {name : 'obj3'};
var callback3 = obj1.func.bind(obj3);
setTimeout(callback3,2000);

call/apply는 해당 메소드 실행시 바로 적용되기 때문에 setTimeout함수와는 맞지 않다고 생각함

profile
나의 하루를 가능한 기억하고 즐기고 후회하지말자

0개의 댓글