2014-04-08 1 views
0

콜백 함수를 사용하여 함수를 만들어야하지만 찾은 솔루션에서 함수를 설정할 수 없습니다.자바 스크립트에서 매개 변수로 함수를 전달하려면 어떻게해야합니까?

나는 설명 할 것이다 :

이 솔루션 내가 찾은되어

function callbackFunction() 
{ 
    alert("hello world"); 
} 

function myFunction(callback) 
{ 
    callback() 
} 

myFunction(callbackFunction()) /* this works */ 

이 내가해야 할 것입니다 :

function myFunction(callback) 
{ 
    callback() 
} 

myFunction(function(){alert("hello world");}); /* this doesn't work */ 

어떤 아이디어?

+0

코드가 작동합니다. 'myFunction (callbackFunction())'은 다음과 같아야합니다 :'myFunction (callbackFunction)' – phylax

+2

코드가 잘 작동합니다 : http://jsfiddle.net/5KnGN/ – Andy

+0

어떤 방식으로 작동하지 않습니까? 이것은 예상대로 작동해야하는 매우 간단한 코드 스 니핏입니다. – stephenbayer

답변

2
myFunction(callbackFunction()) /* this works */ 

아니 그렇지 않은 주셔서 감사합니다. 적어도 당신이 그렇게 생각하는 것은 아닙니다. 이은 : 결과 callbackFunction을 전달 callbackFunction

  • 호출

    1. 는 그 기능하지 이후 callback를 호출 할 때 당신은 아마 myFunction 내에서 오류를 얻고

    myFunction에 . 그러나 당신은 alert()을보고 작동한다고 생각하기 때문에 그것을 무시하고 있습니다. myFunction이 호출되기 전에 alert()이 발생했습니다.

    myFunction(callbackFunction) /* this works */ 
    

    이 같은 눈에 보이는 결과합니다 (alert())을 생산하는 것이지만, 운영하고 오류없이 예상 순서 :

    당신은 아닌 함수 호출, 함수 참조로 전달하고자합니다. 그 코드가 그대로 작동하기 때문에 그런 다음, 당신이 우리와 함께 공유하지 않는 문제에 더가 있어야합니다에 대한

    myFunction(function(){alert("hello world");}); /* this doesn't work */ 
    

    You sure about that?이 참이면


    "는 작동하지 않습니다."

  • +0

    네, 맞습니다. 나는이 문제를 발견했다, 많이 고마워! – Luca

    관련 문제