Javascript: call() & apply() 대 바인딩() 재검토
call() 및 apply()를 사용하면 변경할 수 있습니다. 함수의 컨텍스트를 확인하고 인수를 수동으로 또는 배열로 전달하는 경우, 바인딩() 메서드는 고유한 기능을 제공합니다.
bind() 사용 시기
Bind는 나중에 실행하기 위해 미리 정의된 컨텍스트를 사용하여 함수를 생성해야 할 때 특히 유용합니다. 함수를 즉시 호출하는 call() 또는 apply()와 달리, 바인딩은 지정된 컨텍스트 세트를 사용하여 새 함수를 반환합니다.
다음 예에서는 차이점을 보여줍니다.
var obj = { x: 81, getX: function() { return this.x; } }; alert(obj.getX.bind(obj)()); // 81 alert(obj.getX.call(obj)); // 81 alert(obj.getX.apply(obj)); // 81
이에서 예를 들어, 바인딩()은 실행 시 항상 해당 컨텍스트가 obj 개체로 설정되는 새 함수를 만듭니다. 이는 함수 컨텍스트가 모호해질 수 있는 이벤트 리스너에서 특히 유용합니다.
사용 사례
예:
function MyObject(element) { this.elm = element; element.addEventListener('click', this.onClick.bind(this), false); } MyObject.prototype.onClick = function(e) { var t = this; // do something with [t]... // Without bind, the context of this function would be different. };
결론
Bind를 사용하면 사전 정의된 컨텍스트로 함수를 생성할 수 있습니다. , 이벤트 처리, 비동기 프로그래밍 및 컨텍스트 유지가 중요한 기타 시나리오에서 특히 유용합니다. call() 및 apply()는 즉각적인 함수 호출을 제공하는 반면, 바인드는 고정된 컨텍스트로 나중에 실행하기 위한 함수를 반환합니다.
위 내용은 Javascript `call()` 및 `apply()` 대 `bind()`: 언제 어느 것을 사용해야 합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!