JavaScript_8

김현민·2021년 1월 16일
0

JavaScript

목록 보기
3/16
post-thumbnail

bind VS call

  • call
    : 객체안에서 this의 값을 원하는 함수에 사용하고 싶을 때 사용한다.
  • bind
    : this의 원하는 값을 넣고 아예 고정된 새로운 함수를 만들어 낸다.
var kim = { name: "kim", first: 10, second: 20 };
var lee = { name: "lee", first: 10, second: 10 };

function sum(v) {
  return v + (this.first + this.second);
}

// sum();
// sum.call();
// sum이라는 객체를 실행시킨다.
// 모든 함수는 call 이라는 함수를 가지고 있다.
// 인자로 kim을 넣으면 kim의 메서드가 된다.
// 두번째 인자로는 파라미터로 들어갈 값들이 들어간다.

console.log("sum.call(kim) : ", sum.call(kim, "-> "));
console.log("sum.call(lee) : ", sum.call(lee, " : "));
// 출력
// sum.call(kim) :  -> 30
// sum.call(lee) :   : 20
// ** apply도 유사한 기능을 갖고 있다.


// Bind()
// Bind : 호출될때마다 바꾸는 것이 아닌 고정시키는 것
// 내부적으로 this를 kim으로 하는 새로운 함수가 생긴다.
var kimSum = sum.bind(kim, "-> ");
console.log("kimSum() : ", kimSum());
// 출력
// kimSum() :  -> 30
profile
Jr. FE Dev

0개의 댓글