본문 바로가기

자바스크립트

함수 호출 방식에 의해 결정되는 this

public Class Person {

  private String name;

  public Person(String name) {
    this.name = name;
  }
}

위 그림에서 자바에서 this는 인스턴스 자신 (Self)를 의미한다

이게 프로그래밍 언어에서 일반적인 this의 의미 이지만

자바스크립트는 다르다!

 

let group = {
  title: "1모둠",
  students: ["보라", "호진", "지민"],

  title2 : this.title,
  title3() { console.log(this.title) }
};

console.log(group.title2); //undefined
group.title3(); // 1모둠

위 코드를 실행시키면 알 수 있듯이 함수 블록 스코프 내에서 선언된 this는 1모둠이 출력되는데 반대의 경우는 this가 undefined되어 출력된다.

 

 

 

 

 

 

 

 

 

 

 

 

참고

 

 

https://poiemaweb.com/js-this

 

this | PoiemaWeb

자바스크립트의 this keyword는 Java와 같은 익숙한 언어의 개념과 달라 개발자에게 혼란을 준다. Java에서의 this는 인스턴스 자신(self)을 가리키는 참조변수이다. this가 객체 자신에 대한 참조 값을

poiemaweb.com