[Javascript] this

JungChihoon·2020년 2월 20일
0

Javascript

목록 보기
5/6

한 줄 요약

자바스크립트의 경우 함수 호출 방식에 의해 this에 바인딩할 어떤 객체가 동적으로 결정된다. 다시 말해, 함수를 선언할 때 this에 바인딩할 객체가 정적으로 결정되는 것이 아니고, 함수를 호출할 때 함수가 어떻게 호출되었는지에 따라 this에 바인딩할 객체가 동적으로 결정된다.

  • 함수호출방식
  1. 전역 호출(global, window)
  2. 함수 호출
  3. 메소드 호출(Object)
  4. 생성자 호출(new)
  5. call/apply/bind 호출

호출방식에 따른 this

  1. 전역 호출
console.log(this)
  1. 함수 호출
function test(){
  console.log(this)
}

test();
  1. 메소드 호출
const Obj = {
  name: '테스트',
  call: function(){
    console.log(this.name)
  }
}

Obj.call();
  1. 생성자 호출
function Person(name){
  this.name = name;
}

var person = new Person('테스트')
person.name;
  1. call/apply/bind 호출
function test (){
  console.log(this.name)
}
var custom = {name: 'call/apply/bind 호출'}

test.call(custom)
test.apply(custom)
test.bind(custom)

함수의 호출 시점/ 호출 방식!!에 따라 this 값 정해짐!!

참조: https://poiemaweb.com/js-this

profile
주니어 개발자

0개의 댓글