>웹 프론트엔드 >JS 튜토리얼 >js에서 호출, 적용 및 바인딩의 차이점

js에서 호출, 적용 및 바인딩의 차이점

angryTom
angryTom원래의
2020-02-12 16:02:264530검색

JavaScript에서는 함수 실행 시 컨텍스트를 변경하기 위해 호출, 적용, 바인딩이 모두 존재합니다. 즉, 함수 본문 내에서 this의 포인터를 변경하는 것입니다.

js에서 호출, 적용 및 바인딩의 차이점

js에서 호출, 적용, 바인딩의 차이점

호출, 적용, 바인딩의 차이점은 다음 예제를 통해 확인할 수 있습니다.

var obj = {
    x: 81,
};
 
var foo = {
    getX: function() {
        return this.x;
    }
}
 
console.log(foo.getX.bind(obj)());  //81
console.log(foo.getX.call(obj));    //81
console.log(foo.getX.apply(obj));   //81

세 가지 출력은 모두 81개이지만, 그 뒤에 괄호 쌍이 있습니다.

즉, 컨텍스트를 변경하고 바로 실행하고 싶지 않고 콜백 실행을 하려는 경우에는 바인드() 메소드를 사용한다는 것이 차이점입니다. 적용/호출은 즉시 기능을 실행합니다.

요약하자면:

apply, call 및 바인딩은 모두 함수의 this 개체 지점을 변경하는 데 사용됩니다.

apply, call 및 바인딩은 모두 this가 가리키는 개체의 첫 번째 매개 변수입니다. 즉, 지정하려는 컨텍스트는 모두 후속 매개변수를 사용하여 매개변수를 전달할 수 있습니다.

bind는 나중에 쉽게 호출할 수 있도록 해당 함수를 반환합니다.

이 기사는

js tutorial

칼럼에서 가져온 것입니다. 배우신 것을 환영합니다!

위 내용은 js에서 호출, 적용 및 바인딩의 차이점의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.