programing

인수를 인수로 하는 함수 전달?

telebox 2023. 10. 19. 22:14
반응형

인수를 인수로 하는 함수 전달?

인수를 인수로 자바스크립트 함수를 전달할 수 있습니까?

예:

$(edit_link).click( changeViewMode( myvar ) );

"닫힘"을 사용합니다.

$(edit_link).click(function(){ return changeViewMode(myvar); });

이렇게 하면 매개 변수에 대해 알고 있는 익명 임시 함수 래퍼가 생성되어 실제 콜백 구현에 전달됩니다.

사용. MDN 인용:

메소드는 호출되면 새로운 함수를 생성합니다.this키워드를 제공된 값으로 설정하고, 새 함수가 호출될 때 제공된 임의의 인수 앞에 지정된 인수 시퀀스를 사용합니다.

IE9+를 포함한 모든 주요 브라우저에서 지원됩니다.

코드는 다음과 같습니다.

$(edit_link).click(changeViewMode.bind(null, myvar));

사이드 노트:당신이 세계적인 맥락에 있다고 생각합니다.this변수는window; 그렇지 않으면 사용this대신에null.

아니요, 하지만 매개변수 없이 하나만 통과하면 됩니다.

$(edit_link).click(
  function() { changeViewMode(myvar); }
);

매개변수가 없는 익명 함수를 전달하면, 그 함수는 종결에 있는 변수와 함께 매개변수화된 함수를 호출합니다.

또는 es6를 사용하는 경우 화살표 기능을 사용할 수 있어야 합니다.

$(edit_link).click(() => changeViewMode(myvar));

예, 다음과 같습니다.

$(edit_link).click(function() { changeViewMode(myvar) });

당신은 이걸 할 수 있다.

var message  = 'Hello World';

var callback = function(){
alert(this)
}.bind(message);

그리고 나서.

function activate(callback){
  callback && callback();
}

activate(callback);

또는 콜백에 보다 유연한 논리가 포함되어 있으면 개체를 전달할 수 있습니다.

데모

다음은 페르디난드 비어(Ferdinand Beyer)의 접근 방식을 따르는 예입니다.

function function1()
{
    function2(function () { function3("parameter value"); });
}
function function2(functionToBindOnClick)
{
    $(".myButton").click(functionToBindOnClick);
}
function function3(message) { alert(message); }

이 예에서 "파라미터 값"은 함수 랩을 사용하여 함수1에서 함수3으로 전달됩니다.

언급URL : https://stackoverflow.com/questions/1300242/passing-a-function-with-arguments-as-an-argument

반응형