garyamorris
garyamorris

Reputation: 2617

Javascript function stringing

Could anyone explain to me why the third alert function is simply not called?, and a possible reading resource in relation to the error.

<script type="text/javascript">

$( document ).ready(function() {
   myFunction();
});

function myFunction()
{
    alert("First Function");

    mySecondFunction(function () {
        alert("Third Function");
    });
}

function mySecondFunction()
{
    alert("Second Function");
}

Upvotes: 2

Views: 329

Answers (2)

Martin Majer
Martin Majer

Reputation: 3352

You are passing anonymous function function () { alert("Third Function"); } as a parameter to mySecondFunction(), but you're not calling this anonymous function anywhere inside mySecondFunction().

This would work:

function mySecondFunction(callback)
{
    alert("Second Function");
    callback();
}

Upvotes: 3

DontVoteMeDown
DontVoteMeDown

Reputation: 21465

Because you're doing nothing with that function in the parameter. You can do this:

function mySecondFunction(func)
{
    alert("Second Function");
    func();
}

Upvotes: 8

Related Questions