자바스크립트에서의 this는 어디서든 사용할 수 있으며 다른 언어와는 조금 다르게 동작합니다. 실행 컨텍스트가 생성될때 this의 바인딩이 일어나며 우선순위가있습니다. 실행 컨텍스트는 함수를 호출할때 생성되므로 또 다른 의미로는 함수를 호출할때 this가 결정된다고 할 수도 있습니다. 또한 함수의 호출마다 this가 달라질 수도 있다는 의미이기도합니다. This 전역공간에서의 this는 전역객체 (브라우저 - window, 노드 - global)를 참조 메서드일 경우 호출한 객체를 this로 참조 함수일 경우 this는 전역객체 콜백함수는 제어권을 넘겨받은 함수가 정의한 this 참조, 정의가 없으면 전역객체 생성자 함수는 생성될 인스턴스를 참조 call, apply, bind 같은 명시적 바인딩일 경우..
this javascript의 this 키워드는 다른 언어와는 조금 다르게 동작한다. 실행컨텍스트(EC, Execution Context)가 생성될때마다 this의 바인딩이 일어나며 우선순위가 있다. 대부분은 함수를 호출한 방법에 의해 this가 결정된다. 따라서 함수의 호출때마다 다를수도 있다. 1. new 는 해당객체 2. call, apply, bind 같은 명시적 바인딩일 경우 인자로 전달된 객체 3. 객체의 메소드로 호출한 경우 해당 객체 4. 그외 엄격모드는 undefined로 초기화 됨 (엄격, 비엄격에 차이가 있다) 5. 글로벌에서 일반 브라우저는 window, 노드는 global 전역 문맥 전역 실행 문맥에서의 this는 엄격모드 여부에 관계없이 전역 객체를 참조합니다. // 브라우저 전..