본문 바로가기
Programming & Platform/JavaScript

JavaScript 명시적 this 바인딩, call 메소드 쉽게 배우기 - 예시 코드 제공

by 코드스니펫 2023. 12. 17.
반응형

JavaScript 명시적 this 바인딩, call 메소드 쉽게 배우기 - 예시 코드 제공

 

javascript logo

 

자바스크립트에서 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 메소드를 사용하면 코드를 더 유연하게 작성할 수 있습니다.

 

 

▼ 아래 글도 읽어보세요! ▼

 

 

JavaScript로 이미지 위에 마우스 커서를 손가락 모양으로 바꾸기

JavaScript로 이미지 위에 마우스 커서를 손가락 모양으로 바꾸기 웹 페이지를 디자인하다 보면 이미지 위에 마우스 커서를 손가락 모양으로 바꾸는 것이 사용자 경험을 향상시키는 중요한 요소

lemonlog.tistory.com

 

 

JavaScript Enter 누를 때 검색 기능 로직 - 활용 소스 코드 제공

JavaScript Enter 누를 때 검색 기능 로직 - 활용 소스 코드 제공 웹 애플리케이션을 개발하다보면, 사용자가 검색 필드에 검색어를 입력하고 Enter 키를 누르면 검색이 실행되도록 하는 것이 흔한 요

lemonlog.tistory.com