1. this라나 뭐라나

주요 개념 및 내용

this는 가장 많이 사용하는 키워드 중 하나인데, 그 사용파악이 중요하다. 런타임시점에호출시점에 의해 this가 바인딩 된다. 즉 함수가 호출되는 위치 or 어떻게 호출했는가가 중요하다.

주의 사항

this가 자기자신이나 렉시컬 스코프를 가르키는게 아니라는것을 인지할것!

테스트 코드

(function () {

  function foo(num) {
    console.log("foo : " + num);
    this.count++; // 이부분 this 바인딩 되는 객체 확인 (global or foo)
    // console.log(this.count); // 확인
  }

  foo.count = 0;
  var i;
  for (i = 0; i < 10; i++) {
    if (i > 5) {
      foo(i); //  0나옴
      // foo.call(foo, i); // 4나옴
    }
  }
  console.log(foo.count); // 0, 4

  console.log("==========");

  function foo2() {
    var a = 2;
    // this.bar();
    bar();  // -> this : global
  }

  function bar() {
    console.log("bar" + this.a);  // undefined?

  }

  foo2();  // 참조 에러
})();

Last updated