TIL.231024 this

안은지·2023년 10월 17일
0
post-custom-banner

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

  • 런타임
  • run + Time
  • 코드가 돌아가는 그 환경
  1. 노드
  2. 브라우저
  • 전역 환경에서 this -> 노드(global 객체), 브라우저(window 객체)

<브라우저 환경 this 확인>

console.log(this);
console.log(window);
console.log(this === window);

<node 환경 this 확인>

console.log(this);
console.log(global);
console.log(this === global);

함수&메서드

  • 함수는 그 자체로 독립적인 기능을 수행 [this > 전역객체]
    -어떤 함수를 함수로서 호출할 경우 this는 지정되지 않는다(호출 주체를 알수없음)
  • 메서드는 자신을 호출한 대상 객체에 대한 동작을 수행 [this > 호출의 주체]
  • 예시)
    // CASE1 : 함수
    // 호출 주체를 명시할 수 없기 때문에 this는 전역 객체를 의미해요.
    var func = function (x) {
    console.log(this, x);
    };
    func(1); // Window { ... } 1
    // CASE2 : 메서드
    // 호출 주체를 명시할 수 있기 때문에 this는 해당 객체(obj)를 의미해요.
    // obj는 곧 { method: f }를 의미하죠?
    var obj = {
    method: func,
    };
    obj.method(2); // { method: f } 2

콜백함수

다른 코드의 인자로 넘겨주는 함수이다. 인자로 넘겨준다는 얘기는 콜백함수를 넘겨받는
코드가 있다 (forEach , setTimeout 등..)
콜백 함수를 넘겨받은 위와 같은 코드 forEach , setTimeout 등은 이 콜백 함수를 필요에
따라 적절한 시점에 실행하게 된다(제어권 forEach , setTimeout에 있음)

post-custom-banner

0개의 댓글