2013-10-08 4 views
1

Objective C에서 블록을 사용할 때 블록이 정의 된 함수 내에서 액세스 할 수있는 모든 변수를 사용할 수 있습니다.함수 선언 안에 변수를 전달할 수 있습니까?

동일한 JavaScript 함수가 변수로 정의되어 있습니까? 이 beforeSaveFunction의 내부에 선언 된 이후 예를 들어

successFunction 작업을 제대로 할 때, 내부 someOtherFunction의 호출 것인가?

var beforeSaveFunction = function(request, response) { 

    var successFunction = function(code, request, response) { 
     request.object.set("sessionAuthCode",code); 
     response.success(); 
    } 

    someOtherFunction(successFunction, request, response); 
} 

옵션 1이 작동하지 않는 경우, 옵션보다 쉽게 ​​대안이 :

var beforeSaveFunction = function(request, response) { 

    var successFunction = function(code) { 
     request.object.set("sessionAuthCode",code); 
     response.success(); 
    } 

    someOtherFunction(successFunction); 
} 

이 아니면 내가이 작업을 수행하고 someOtherFunction 내부의 변수에 따라 통과해야합니다 2?

+3

시도 할 때 어떤 일이 발생 했습니까? 또한 폐쇄. –

+0

+1 시도해도이 웹 사이트에서 확실히 묻는 것보다 더 빠릅니다. – andygoestohollywood

+0

일반적으로 동의 하겠지만 웹 서비스에서 실행되는 프레임 워크를 사용하여 개발하고 있습니다. 현재로서는 JavaScript 코드에서 오류 메시지를 검색 할 수 있는지, 어떻게 검색 할 수 있는지 확실하지 않아 코드를 푸시하기 전에 코드가 작동하는지 확인하고 싶습니다. –

답변

1

예, JavaScript 클로저가 작동하는 방식입니다. 함수가 정의 된 범위에 변수가있는 한 함수는 호출 될 때 함수 내에 있습니다.

참조 : How do JavaScript closures work?

관련 문제