본문 바로가기
Javascript

call apply bind 의 차이점과 활용

by @hohoya33 2021년 03월 23일

call과 apply는 함수 호출시 this 가 가르켜야할 주체를 명시 할 수 있습니다.

const foo= {
  value:1,
  addValue:function(n1,n2){
  	this.value += (n1+n2)
  }
}
const bar = {
  value:10
}

person.addAge.apply(bar, [1,3]); // 14
person.addAge.call(bar,10) // 20

 

위와 같이 foo 객체에 소속된 addAge를 사용할때 this.에 해당하는 주체를 bar로 변경시켜준것입니다.
call과 apply의 차이점은 두번째 인수로 arguments 배열을 넘겨준다는 것이다. 가변인수를 사용할때 사용하면 됩니다.

bind는 함수를 객체에 바인딩 할 때 씁니다.

const monkey={
  age:3,
  addAge:function(a){
    this.age += a // 15
    monkey.age -= a  // 5
  },

}
function test(){
  console.log(this.age)
}
const testbind = test.bind(monkey)

testbind()

binding된 함수를 변수에 할당하여 사용합니다.

간단하게 참고용으로 정리를 해보았습니다.

개의 댓글