0

初めてコールバック関数を使用しようとしていますが、うまく機能しません。これが私のコードの簡略版です:

var unsavedChanges = 1;

function saveData(callback)
{
    // save data

    if(typeof callback === "function")
    {
        unsavedChanges = 0;
        callback.apply(arguments);
    }
}

function nextStep(val)
{
    if(unsavedChanges == 1)
    {
        saveData(nextStep, val);
        return false;
    }

    console.log(val);
}

nextStep("test");

JSFiddle: http://jsfiddle.net/tXqn3/

私の実際の「saveData」関数内では、使用$.ajax()してデータを保存しており、関数にコールバックがあり.done()ます。したがって、このようにして、ページに保存されていないデータがある場合、それが保存され、呼び出された元の関数が実行されます。

このコードではundefined、コードの実行時に値がコンソールに出力されます。私は何を間違っていますか?

4

3 に答える 3