Today’s Key 🔑

추가로 공부하자 💪🏼

정리하면서 복습하자 🚀

클로저를 이해하는 것에 있어서.

Javascript this를 이해하는 것에 있어서 1.

우선적으로 MDN의 this 문서를 따라가보고자 한다.

const test = {
  prop: 42,
  func: function() {
    return this.prop;
  },
};

console.log(test.func());
// expected output: 42

여기서 this는 test라는 객체 자체를 의미한다는 것을 알 수 있다. func 키의 값으로 함수를 소환하고, 그 안의 this는 test 객체 자체를 받는다.

this를 사용하는 것은 함수를 어떻게 불러내는지에 따라서 다를 수 있다.

여기서는 call() , apply() 메소드를 사용할 때, this를 어떻게 활용하는지 보여준다.


function add(c, d) {
  return this.a + this.b + c + d;
}

var o = {a: 1, b: 3};

// 첫 번째 인자는 'this'로 사용할 객체이고,
// 이어지는 인자들은 함수 호출에서 인수로 전달된다.
add.call(o, 5, 7); // 16

// 첫 번째 인자는 'this'로 사용할 객체이고,
// 두 번째 인자는 함수 호출에서 인수로 사용될 멤버들이 위치한 배열이다.
add.apply(o, [10, 20]); // 34

call, apply 메소드를 활용할 때는, 해당 메소드의 처음 인자로 특정 변수나 값 등을 넣지 않으면 자연스럽게 this를 전역으로 처리한다. 그렇게 처리를 원치 않으면 null, undefined 처리가 필수이다.