반응형
전역 컨텍스트에서의 this
전역 컨텍스트에서 'this'는 전역 객체를 참조한다. 웹 브라우저에서 전역 객체는 'window' 객체이고, Node.js에서는 'global' 객체이다.
*컨텍스트(context): 프로그래밍에서 언어의 일부가 작동하는 맥락이나 범위를 나타냄
console.log(this); // window (브라우저) 또는 global (Node.js)
일반 함수 호출에서의 this
일반적인 함수 호출에서 'this'는 기본적으로 전역 객체를 참조한다. 그러나 strict mode를 사용할 경우 'this'는 undefined를 참조한다.
* strict mode: 코드 실행 환경으로, 기존의 자바스크립트 구문 및 동작에 대한 제한을 추가하여 코드의 안정성과 성능을 높이는 데 도움
function example() {
console.log(this);
}
example(); // window (브라우저) 또는 global (Node.js)
function strictExample() {
'use strict';
console.log(this);
}
strictExample(); // undefined
객체 메소드에서의 this
객체 내부의 메소드를 호출할 때 'this'는 해당 메소드를 호출한 객체를 참조한다.
const obj = {
name: 'John',
greet: function () {
console.log(`Hello, my name is ${this.name}`);
},
};
obj.greet(); // 'Hello, my name is John'
반응형
생성자 함수에서의 this
생성자 함수를 사용하여 새 객체를 생성할 때 'this'는 새로 생성된 객체를 참조한다.
function Person(name) {
this.name = name;
this.greet = function () {
console.log(`Hello, my name is ${this.name}`);
};
}
const john = new Person('John');
john.greet(); // 'Hello, my name is John'
이벤트 핸들러에서의 this
DOM 이벤트 핸들러에서 'this'는 이벤트가 발생한 HTML 요소를 참조한다.
<button id="myButton">Click me</button>
<script>
const myButton = document.getElementById('myButton');
myButton.addEventListener('click', function () {
console.log(this); // 이벤트가 발생한 <button> 요소
});
</script>
반응형
'JavaScript' 카테고리의 다른 글
[ES6 문법] 화살표 함수(Arrow Function) (0) | 2023.08.11 |
---|---|
[JavaScript] 클로저 | 정의, 동작원리, 데이터은닉, 비동기작업 (0) | 2023.06.29 |
[JavaScript] 변수선언 | var, let, const + 호이스팅 (0) | 2023.06.27 |
[JavaScript] 스코프 | 전역스코프, 지역스코프, 스코프체인, 함수레벨스코프, 렉시컬 스코프 (0) | 2023.06.26 |
[JavaScript] 함수 호출 (호출 방식, 매개변수와 인수, 반환 값(return)) (0) | 2023.06.25 |