최대 1 분 소요

상황에 따라 달라지는 This

  • this는 함수를 호출할 때 결정된다.

전역 공간에서의 this

  • 전역 공간에서 this는 전역 객체를 가리킨다.
  • 브라우저에서의 전역객체는 window, Node.js에서는 global 이다.
  • 전역변수를 선언하면 자바스크립트 엔진은 이를 전역객체의 프로퍼티로 할당한다.
  • 자바스크립트의 모든 변수는 실은 특정객체의 프로퍼티로서 동작한다.
  • 전역객체에 프로퍼티를 할당 하는 것과 var로 선언한 것이 똑같이 작동한다.

메서드로서 호출할 때 그 메서드 내부에서의 this

함수 vs 메서드

  • 프로그래밍 언어에서 미리 정해놓은 동작을 하는 코드 뭉치로, 이 둘을 비교하는데 있어 독립성의 차이가 있다.
  • 함수는 그 자체로 독립적인 기능을 수행한다.
  • 메서드는 자신을 호출한 대상 객체에 관한 동작을 수행한다.

(함수로서 호출, 메서드로서 호출)

var func = function(x) {
    console.log(x);
}
fucn(1);      // Window { ... } 1

var obj = {
    method: func;
};
obj.method(2);   // { method: f }  2

댓글남기기