For Programmer

자바스크립트 - this의 이해 본문

Programming language/JavaScript

자바스크립트 - this의 이해

유지광이 2020. 7. 17. 22:05
728x90

* 객체안에 객체도 담을 수있으며 객체안에 함수도 원소로 저장이 가능하다.

* this란 자기를 감싸고 있는 객체를 의미한다. 위의 코드에서는 grades라는 객체를 의미한다.

* 단, this를 감싸고 있는 객체가 없을 경우 기본적으로 함수내에서의 this는 웹 브라우져의 전역객체 window를 의미한다.

*this의 자세한 설명은 

https://www.zerocho.com/category/JavaScript/post/5b0645cc7e3e36001bf676eb

 

(JavaScript) 자바스크립트의 this는 무엇인가?

안녕하세요. 이번 시간에는 자바스크립트 this에 대해 알아보겠습니다. 사실 이미 실행 컨텍스트 강좌 에 다 설명해둔 것이긴 한데요. 그 강좌는 실행 컨텍스트(전체적인 흐름)에 더 집중해서 쓰�

www.zerocho.com

아주잘되어 있으니 참고하면된다.

 

*this 사용의 혼동 예시)

var numbers = {
numberA: 5,
numberB: 10,
sum: function() {
console.log(this === numbers); // => true
function calculate() {
// this는 window, 엄격 모드였으면 undefined
console.log(this === numbers); // => false
return this.numberA + this.numberB; // numbers에 접근 불가
}
return calculate();
}
};

-> sum: function{}은 객체의 메서드이고 calculate() 함수는 sum이라는 프라퍼티의 이너함수이지만 사용자가 선언안 함수이다. arrow함수가 아닐경우 this는 하위 함수로 상속되지않기때문에 this는 window를 가리키게 된다.

 

*추가적으로 자바스크립트를 사용하기위해선 this에 대한이해는 필수적이기 때문에 공식문서를 한번씩 읽어보기 바란다.

https://developer.mozilla.org/ko/docs/Web/JavaScript/Reference/Operators/this

 

this

JavaScript에서 함수의 this 키워드는 다른 언어와 조금 다르게 동작합니다. 또한 엄격 모드와 비엄격 모드에서도 일부 차이가 있습니다.

developer.mozilla.org

 

728x90
Comments