반응형
자바스크립트 this는
기본적으로 전역객체인 window를 가르킨다
상황에 따라서 다르게 사용될수도 있다
우선 this가 함수에서 사용될 때
엄격 모드일때와 비엄격모드 일때
그리고 화살표 함수일 때가 있다
함수에서 this
1. 비엄격 모드 일 경우
function f() {return this;}
f() === window // true
전역 객체인 window 를 가르킨다
2. 엄격 모드 일 경우
function f() {
"use strict" // 엄격모드
return this;
}
console.log(f()) // undefined
함수 안에서만 값을 유지하므로
밖에서는 알 수 없다
3. 화살표 함수 일 경우
const f = () => this
f()// window
화살표 함수에서 this 는 자신을 감싼 정적 범위이다
객체 메소드에서 this
객체안에서 this를 사용하면
this는 객체를 가르킨다.
dog라는 객체를 예시로 들면
const dog = {
name : 'tom',
age : 4,
sound : 'wow',
bow(){
console.log('bowwww!!!')
}
}
dog.bow() // bowwww!!!
dog객체의 bow 메소드에 sound를 넣어보겠다
const dog = {
name : 'tom',
age : 4,
sound : 'wow',
bow(){
console.log(sound)
}
}
그냥 접근하려고 하면
레퍼런스 에러가 발생한다
this로 객체를 가르켜서 접근해야한다.
const dog = {
name : 'tom',
age : 4,
sound : 'wow',
bow(){
console.log(this.sound)
}
}
dog.bow() // wow
this를 써주니 제대로 출력이 된다.
상황에 따라 this가 가르키는게 다르니 잘 알아둬야겠다
반응형
'javascript' 카테고리의 다른 글
자바스크립트 배열 메소드2(map, filter, reduce) (0) | 2023.03.24 |
---|---|
자바스크립트 화살표 함수 (0) | 2023.03.23 |
자바스크립트 메소드 (0) | 2023.03.21 |
자바스크립트 고차 함수와 반환 함수 (0) | 2023.03.20 |
자바스크립트 함수 범위와 표현식 (0) | 2023.03.19 |