by leonardomso & jakeseo_me # #

call 메서드는 모든 함수에서 사용할 수 있으며, this 를 특정값으로 지정할 수 있습니다.

apply 는 함수 매개변수를 처리하는 방법을 제외하면 call 과 완전히 같습니다. call은 일반적인 함수와 마찬가지로 매개변수를 직접 받지만, apply 는 매개변수를 배열로 받습니다.

bind 함수의 this 값을 영구히 바꿀 수 있습니다.

"this"의 개념적 개요

함수가 만들어졌을 때, 뒤에서는 this라 불리는 키워드가 만들어집니다. this는 함수가 동작하는 곳에 있는 오브젝트와 연결해줍니다.

this 키워드의 값은 그 함수 자체와는 상관이 없습니다. 함수가 어떻게 불려지는지가 this의 값을 결정합니다.

기본 "this" 컨텍스트

// define a function
var myFunction = function () {
  console.log(this);
};

// call it
myFunction();

this의 값은 어떤 것이 될지 예측할 수 있을까요? 기본 값으로, this는 언제나 전역 스코프의 root을 참조하는 window Object가 됩니다. 만일, 스크립트가 strict mode("use strict") 내에서 작동하고 있다면, this는 undefined일 것입니다.

오브젝트 리터럴(Object literals)

var myObject = {
  myMethod: function () {
    console.log(this);
  }
};

여기서 this의 값으론 무엇이 들어올까요?

정답은 우린 모른다 입니다.

기억해두세요. this 키워드의 값은 언제나 함수 그 자체와는 상관 없습니다. 함수가 어떻게 호출되는지가 this의 값을 결정합니다.