redandblue
redandblue

Reputation: 770

Function with a callback

Learning javascript and wanted to get more clarity regarding callbacks.

In the following code snippet,

function do_a( callback ){
    // if callback exist execute it
    callback && callback();
}

function do_b(){
  console.log( 'do_b executed' );
}
 //one way
do_a( function(){
  do_b();
});

//other way
do_a(do_b);

Is there a difference between the two ways the do_a() is called. One passes a pointer to the do_b function, the other passes a function which executes the do_b function. All the examples i've seen use the first way. Is that more preferred style wise?

Upvotes: 0

Views: 58

Answers (2)

Sagar V
Sagar V

Reputation: 12478

you don't have to pass it as an argument. Directly call it.

function abc(){
a = "function abc";
console.log(a);
cde();
console.log(a);
}
function cde(){
a="function cde";
}

abc();

Upvotes: 0

Shadow Wizard
Shadow Wizard

Reputation: 66389

The first way just creates an extra anonymous function that calls the second function. This is useful if you want to perform actions before or after calling the callback, e.g.

do_a( function(){
    console.log("I'm going to call the second function...");
    do_b();
    console.log("Second function is done.");
});

Otherwise, I can't see any point in this extra function and the second way is better.

Upvotes: 3

Related Questions