2012-03-26 5 views
0

jQuery를 처음 접했을 때 어떻게 접근해야할지 모르겠습니다. 사용자 정의 함수 내에서 콜백 함수를 만들고 싶습니다. 내가 콜백 함수 스크립트 (예를 들어, 하나 이상의 스크립트는이 콜백에 액세스 할 수 있습니다) 임의의 수의 액세스 할 수 할커스텀 jQuery 함수 내에서 콜백 함수 만들기

function doSomething() { 
    var output = 'output here'; 
    // Do something here 

    // This is where I want to create the callback function and pass output as a parameter 
} 

: 여기 내 예입니다.

이 함수 (doSomething)는 플러그인의 일부가 아니며 다른 콜백 함수 자체의 일부입니다. 또한 함수 내에서 var를 만들고 콜백 함수를 통해 전달하려고합니다.

어떻게하면됩니까?

+0

당신은'doSomething'에 전달되는 것을 제어 할 수 없다는 말입니까? 사용하는 프레임 워크에 따라 다르 겠지만 ... doSomething을 콜백으로 전달한 코드를 공유 할 수 있습니까? – bhamlin

+0

예, 맞습니다. 나는 do not something로 전달되는 것이 무엇인지를 반드시 알 필요는 없지만 누군가 들어오고 확장 할 수 있어야합니다. – Thomas

답변

1

당신이 무엇을 요구하고 있는지 명확하지 않습니다. 콜백 함수를 만드는 것은 함수를 선언하고 콜백이 필요한 다른 함수에 인수로 전달하는 것처럼 간단합니다. 당신이 정말로 함수 내에서 함수를 선언하려면 명명 된 기능을 대신 익명 함수를 사용하여

function doWork(fnCallback) { 
    // do some work 
    // when done with the work 
    // call the callback 
    var someVar = 1; 
    fnCallback(someVar); 
} 

function myCallback(val) { 
    alert("got my callback - val=" + val); 
} 

doWork(myCallback); 

또는

doWork(function(val) { 
    alert("got my callback - val=" + val); 
}); 

, 당신은 할 수있는 그것도 : 그래서

function doSomething() { 

    function myCallback(val) { 
     alert("got my callback - val=" + val); 
    } 
    doWork(myCallback); 
} 
+0

첫 번째 예는 내가 원하는 것처럼 보이지만 콜백 함수를 여러 번 호출 할 수 있습니까? 따라서 페이지에 3 개의 스크립트를로드하고 각 스크립트는 myCallback을 사용하여 해당 콜백에 연결하려고한다고 가정합니다. myCallback을 3 번 호출하면 문제가 발생합니까? – Thomas

+0

@Thomas - myCallback은 단지 일반적인 함수입니다. 원하는만큼 여러 번 호출 할 수 있습니다. 기능이 호출되도록 만들어졌습니다. 콜백과 정규 함수로 사용되는 함수에는 차이가 없습니다. – jfriend00

+0

좋아, 그게 내가 알고 싶었던거야. 프로세스가 ** 새로운 기능을 정의했는지 ** 단지 새로운 기능을 정의했는지 ** 단지 ** 호출했는지는 확실하지 않았습니다. 왜냐하면 당신이 한 번 이상 함수를 정의 할 수 없다는 것을 알고 있기 때문에 혼란 스러웠습니다. 그것을 한 번 이상 사용하십시오. 나를 위해 그것을 정리 주셔서 감사합니다! – Thomas