- 일반 함수에서의 this : 함수를 호출한 객체
- arrow함수에서의 this : 함수를 감싸는 상위 스코프
//전역 this
console.log(this) // window{...}
//엄격모드에서의 this
function f1() {
"use strict";
return console.log(this);
}
f1(); // undefined
//일반 함수에서의 this
function f2() {
return console.log(this);
}
f2(); // window{...}
//객체 메서드에서의 this
const f3 = {
name : "test",
main : function(){
console.log(this)
}
}
f3.main(); // {name: 'test', main: ƒ} , 함수를 호출한 객체
//화살표함수의 this
const f4 = {
name : "test",
main : () => {
console.log(this);
}
}
f4.main(); // window{...}
Function.prototype.bind
- this값을 정적으로 지정하고 싶을 때
- 화살표함수는 ❌
function greet() {
console.log(this.name);
}
const person = { name: 'Alice' };
const greetPerson = greet.bind(person);
greetPerson(); // Alice
'자바스크립트' 카테고리의 다른 글
[JS] 함수 참조, 함수 호출 (0) | 2024.10.29 |
---|---|
[JS]자바스크립트 동작 원리(실행 컨텍스트, 스코프, 이벤트루프) (2) | 2024.10.25 |
[JS]정규표현식 (0) | 2024.10.24 |
[JS]클로저(Closure) (0) | 2024.10.10 |
[JS]기본 문법(변수) (0) | 2024.10.01 |