programing

인수 밑줄이있는 디 바운스 함수

goodcopy 2021. 1. 16. 10:34
반응형

인수 밑줄이있는 디 바운스 함수


몇 가지 인수를받는 함수가 있습니다. 그러나 밑줄 디 바운스의 사용법은 다음과 같습니다.

var lazyLayout = _.debounce(calculateLayout, 300);

그러나 제 경우에는 calculateLayout몇 가지 논쟁이 필요합니다. 이 경우 어떻게 통과 할 수 있습니까?

업데이트 :

샘플 calculateLayout기능 :

var calculateLayout = function(a,b) {
  console.log('a is ' + a + ' and b is ' + b);
}

익명 함수를 첫 번째 인수로 사용하고 원하는대로 호출 할 수 있어야합니다.

_.debounce(function(){
    calculateLayout(20, 30);
}, 300);

중간에 익명 함수가 필요하지 않습니다 . 디 바운스 된 버전을 실행할 때 인수가 자동으로 원래 함수로 전달됩니다 .

  var debounceCalculate = _.debounce(calculateLayout, 300);
  debounceCalculate(a,b);

장점으로 미리 인수를 하드 코드 바인딩 할 필요가 없습니다.

시도해 볼 수 있고 궁금하다면 소스를 확인하십시오.


@Jamie의 대답이 더 좋습니다.

JS에 익숙한 경우 Jamie의 답변을 사용하는 것이 더 낫지 만 원래 답변을 아래와 같이 유지하겠습니다.

var calculateLayout = function(a,b) {
  console.log('a is ' + a + ' and b is ' + b);
}

var debounceCalculate = _.debounce(function(a, b){
    calculateLayout(a, b);
}, 300);

debounceCalculate(1, 2);

즉시 아무도 추가없이 하나의 라이너를 작성하지 않기 때문에 var그리고 function, 내가 직접 할 수 있습니다 :

_.debounce(calculateLayout, 300)(a, b);

디 바운스 함수는 다른 함수를 반환하므로 디 바운스가 실행 된 직후에 호출 할 수 있습니다.

참조 URL : https://stackoverflow.com/questions/23858046/debounce-function-with-args-underscore

반응형