자바스크립트 this란?

joseph·2023년 5월 14일
0

개념정리

목록 보기
8/16

https://www.youtube.com/watch?v=KfuyXQLFNW4

  • 단독으로 사용했을 때 this
    • global object ⇒ window를 가리킨다.
  • 함수 내에서 쓴 this
    • 함수 내에서 쓴 this도 함수의 주인인 window에게 바인딩 된다.
    • function test(){ return this; }
    • console.log(test()) // Window
  • 메서드 안에서 쓴 this
    내부 코드에서 사용된 this는 해당 메서드를 호출한 객체로 바인딩 된다.
  • 이벤트 핸들러 안에서 쓴 this
    이벤트를 받는 html요소를 가리킨다.
    btn.addEventListener(’click’, function(){
    console.log(this) // btn
    })
  • 생성자 안에서 쓴 this
    생성하는 객체로 this가 바인딩된다.
    function Person(name){
    
    [this.name](http://this.name) = name;
    
    }
    
    let kim = new Person(’kim)
    
    console.log(kim.name) // kim  → 생성된 객체에 바인딩 된 kim
     - 생성자 new가 없으면 같은 값이어도 window에 바인딩 된 kim이 나온다.
  • bind한 this 함수의 this값을 영구히 바꿀 수 있다. bind로 지정한 객체가 this가 된다.
  • call / this call 또한 this의 값을 지정해 준다. call() 에서 첫번재 매개변수는 this값을 지정해주고, 후에 오는 매개변수는 call이 호출하는 함수의 매개변수로 사용된다. call이 배열을 매개변수로 받는다면 …스프레드 연산자를 사용해야 한다.
  • apply / this call과 마찬가지로 첫번째 매개변수로 오는 값을 this의 값으로 지정해주지만,
    apply는 함수에 사용될 매개변수를 배열로 받는다는 것이다. 배열 요소를 함수 매개변수로 사용할 때 유용하다
  • 화살표함수 내에서 쓴 this
profile
내일도 모레도 글피도 엉금엉금

0개의 댓글