-12

2 つの関数があり、2 番目の関数から何かを返そうとしています。何が間違っているのかわかりません。私undefinedはアラートを受け取り続けます。

function a(){
    var testMe = b("hello");
    alert(testMe);  
}

function b(theVar){
    var returnVar = theVar;
    return returnVar;   
}
4

3 に答える 3

0

質問の件名には「Return from on function」と書かれており、タグには が記載さjQueryれていますが、質問のコードは正常に機能します。

私は、テスト ケースを縮小しすぎてそこから問題を取り除いたと仮定して作業しています (将来的には、縮小されたテスト ケースをテストして、問題が解決しないことを確認してください!)、実際には次のようなものがあると仮定します。

function a() {
    var result = jQuery('foo').on('click', function () { return 1; });
    //                         ^^ This being the on function
}

…そしてあなたresultは等しくしたい1.

不可能だよ。

on後で実行するイベント ハンドラーを割り当てるだけです。awillの実行は、そのイベントが発生する前に終了します。イベント ハンドラーから、それを割り当てる関数に何も返すことはできません。

データが使用可能になったときに実行する関数を定義するコールバックを使用できます。これは、 の 2 番目の引数として渡す関数とまったく同じように機能しますon

function a(callback) {
    var result = jQuery('foo').on('click', function () { callback(1); });
}

a(function (result) { alert(result); });
于 2013-06-03T12:40:00.613 に答える