[javascript] call, bind, apply

jinwonShen·2025년 1월 25일

javascript

목록 보기
38/52
post-thumbnail

.call(), .apply(), .bind()

.call(this, 인수1, 인수2...) - 대상 함수를 주어진 객체(this)의 메소드로 실행한다.

.apply(this, [인수1, 인수2, ...]) - 대상 함수를 주어진 객체(this)의 메소드로 실행한다.

.bind(this) - 대상 함수를 주어진 객체(this)의 메소드로 실행할 수 있는 새로운 함수를 반환한다.

간단한 예시

const neo = {
  name: "Neo",
};

const amy = {
  name: "Amy",
  getInfo(age, city) {
    return `${this.name}${age}세이고, ${city}에 삽니다.`;
  },
};
console.log(amy.getInfo(22, "서울"));

// call
console.log(amy.getInfo.call(neo, 85, "서울"));

// apply
console.log(amy.getInfo.apply(neo, [22, "대구"]));

// bind
const neoGetInfo = amy.getInfo.bind(neo);

setTimeout(() => {
  console.log(neoGetInfo(85, "서울"));
}, 1000);

따라하기


profile
하면 된다. | 좋은 FE 개발자 되기

0개의 댓글