this를 다른 객체로 변경하려면 JavaScript의 bind, call, 또는 apply를 사용할 수 있습니다.
이러한 메서드들을 활용하여 함수 내부의 this를 원하는 객체로 명시적으로 바인딩할 수 있습니다.
- bind: 함수와 특정 객체를 묶어 새로운 함수를 생성합니다.
- call: 함수를 호출하는 동시에 특정 객체를 지정하여 this를 설정합니다.
- apply: 함수를 호출하는 동시에 특정 객체를 지정하여 this를 설정하며, 인자를 배열 형태로 전달합니다.
첫번째 인자는 this로서 사용될 Object 이다. 두 번째 인수 부터는 인자
fun.bind(thisArg, 인자, 인자, ...)
fun.call(thisArg, 인자, 인자, ...)
fun.apply(thisArg, 배열)
const myObject = {
name: "Alice",
};
function greet() {
console.log(`Hello, ${this.name}!`);
}
// bind를 사용하여 this를 myObject로 변경
const boundFunction = greet.bind(myObject);
boundFunction(); // Hello, Alice!
// call을 사용하여 this를 myObject로 변경
greet.call(myObject); // Hello, Alice!
// apply를 사용하여 this를 myObject로 변경
greet.apply(myObject); // Hello, Alice!
반응형
'JavaScript' 카테고리의 다른 글
[JavaScript] 두개의 배열 합치기 (0) | 2022.12.13 |
---|---|
[JavaScript] 웹 브라우저 분기 체크 (0) | 2022.12.13 |
[JavaScript][ES6] 배열 함수 find, findIndex, some, every (0) | 2019.04.16 |
[JavaScript] 브라우저 뒤로가기 막기 (0) | 2018.07.12 |
[JavaScript] 모바일, pc 접속 브라우저 체크 (0) | 2018.03.15 |