JavaScript 명시적 this 바인딩, call 메소드 쉽게 배우기 - 예시 코드 제공
자바스크립트에서 this 키워드는 함수가 어떻게 호출되는지에 따라 다르게 동작합니다. 이러한 동작을 이해하고 this를 명시적으로 바인딩하려면 call 메소드를 사용할 수 있습니다. 이 글에서는 call 메소드의 개념, 사용법 및 예시 코드를 통해 자세히 살펴보겠습니다.
call 메소드란 무엇인가?
call은 모든 함수 객체에서 사용할 수 있는 메소드로, 함수를 호출하는 동안 this를 특정 객체로 명시적으로 바인딩하는 데 사용됩니다.
call 메소드 사용법
call 메소드를 사용하면 함수를 호출하면서 명시적으로 this를 지정할 수 있습니다. 아래는 기본적인 사용법입니다.
function greet(name) {
console.log(`안녕, ${name}! 나는 ${this.job}이야.`);
}
const person = {
name: "철수",
job: "개발자"
};
greet.call(person, person.name);
위 코드에서 call 메소드는 greet 함수를 호출하면서 this를 person 객체로 바인딩합니다. 따라서 함수 내에서 this.job은 "개발자"가 됩니다.
call 메소드를 활용한 예시
call 메소드는 주로 상속, 객체 리팩토링 또는 특정 컨텍스트에서 함수를 실행해야 할 때 유용합니다.
const car = {
brand: "BMW",
model: "X5",
start: function() {
console.log(`${this.brand} ${this.model}을 시작합니다.`);
}
};
const bicycle = {
brand: "Trek",
model: "FX2"
};
car.start.call(bicycle); // "Trek FX2을 시작합니다."
위 코드에서 call 메소드를 사용하여 car 객체의 start 함수를 bicycle 객체의 컨텍스트에서 실행했습니다.
주의사항
- call 메소드를 사용할 때 주의할 점은 첫 번째 매개변수로 전달한 객체가 해당 함수 내에서 this로 사용된다는 것입니다.
- 함수를 호출하면서 다른 매개변수도 함께 전달할 수 있습니다.
끝으로
call 메소드는 자바스크립트에서 this 바인딩을 명시적으로 조절할 때 유용한 도구입니다. 이 글에서는 call 메소드의 개념, 사용법, 그리고 예시 코드를 통해 이해했습니다. 함수를 다양한 컨텍스트에서 실행하고 this를 지정할 때 call 메소드를 사용하면 코드를 더 유연하게 작성할 수 있습니다.
▼ 아래 글도 읽어보세요! ▼
'Programming & Platform > JavaScript' 카테고리의 다른 글
JavaScript 유사 배열 객체 쉽게 배우기, 예제 소스 코드 제공 (1) | 2023.12.24 |
---|---|
JavaScript 명시적 this 바인딩, apply 메소드 쉽게 배우기 - 예시 코드 제공 (0) | 2023.12.19 |
JavaScript 콜백 지옥 해결법 - Promise, async/await 사용법 소개 (0) | 2023.12.16 |
부트스트랩 달력 특정일자 비활성화 하는 방법 bootstrap datepicker (0) | 2023.12.15 |
JavaScript 콜백함수 사용법, 콜백 지옥, 에러 처리, 관련 소스 코드 (0) | 2023.12.13 |