2014-12-02 2 views
3

익명 함수에서 값을 반환하고 싶습니다. 어떻게 아래 코드에서 반환 된 값을 $ id 변수에 할당 할 수 있습니까?js의 익명 함수에서 값을 반환하는 방법

$(document).on("click", '.delete-component', function(e) { 
    return 4; 
}); 

//$id in this scope should be equal 4 
+0

클릭이 발생하기 전에는 아무 것도 지정할 수 없습니다. 아니요, 비동기 콜백에서 값을 반환 할 수 없습니다 (http://stackoverflow.com/q/23667086/1048572). – Bergi

+0

클릭시 이벤트 콜백이 호출되지만 결과를 지정할 수는 없습니다. 그러나 당신은 그것의 안에서 * 할당 할 수있다. – dfsq

+0

반환 값으로 무엇을 할 예정입니까? –

답변

1

여기서 비동기 작업을 수행한다는 사실에 유의해야합니다. 방아쇠를 당긴다. (n은 약간 먼 수를 의미한다.)

1] $(document).on("click", '.delete-component', function(e) { 
n+1] return 4; 
     }); 
2] console.log('here'); 

당신이 붙인 것은 청취자와 연결되었다. 클릭은 현재 발생하지 않습니다. 클릭하면 발생합니다. 따라서 클릭이 발생하면 액세스 할 수 있습니다. 다음 두 가지 작업을 수행 할 수 있습니다.

  1. 위의 범위에서 var을 선언하십시오.
  2. 앞으로 값은 특히 각도가 여기에 많은 작업을 수행, 당신은 또한 $ 시계를 조사 할 수

1) 예 1

var myValue = 0; 
$(document).on("click", '.delete-component', function(e) { 
    myValue = 4; 
}); 

function abc() { 
    console.log('myValue is equal to ' + myValue); 
} 

// if that line happen before clicking, value will be still 0 
execture somewhen abc(); 

2) 예 2

$(document).on("click", '.delete-component', function(e) { 
    doSomethingWithValue(4); 
}); 

function doSomethingWithValue() { 
    console.log('myValue is equal to ' + myValue); 
} 

콜백하기 당신.

1

당신은

function aux(param1, callback){ 
    // do whatever... 
    $(document).on("click", param1, function(e) { 
     // return 4; 
     callback(4); 
    }); 
} 

... asyn의 기능이나 동작에 도달했을 때, 콜백을 사용하는 또 다른 콜백 그래서 일반적으로 수익을 수행 할 작업을 지정해야합니다 그리고 당신은 다음과 같이 코드에서 USIT 것 :

// your context.. 
// operations 1.. 2.. 
aux('.delete-component', function(theReturnedValue){ 
    console.log(theReturnedValue); // 4 
}); 

이것은 콜백이 외부 범위로 '반환하는'값입니다.

관련 문제