具有回调功能

时间:2017-02-23 09:01:08

标签: javascript

学习javascript并希望更清晰地了解回调。

在以下代码段中,

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);

调用do_a()的两种方式之间是否存在差异?一个传递指向do_b函数的指针,另一个传递执行do_b函数的函数。我见过的所有例子都使用第一种方式。这是更优选的风格吗?

2 个答案:

答案 0 :(得分:3)

第一种方法只是创建一个额外的匿名函数来调用第二个函数。如果要在调用回调之前或之后执行操作,例如

,这将非常有用
do_a( function(){
    console.log("I'm going to call the second function...");
    do_b();
    console.log("Second function is done.");
});

否则,我无法看到这个额外功能中的任何一点,第二种方式更好。

答案 1 :(得分:0)

你不必将其作为论据传递。直接打电话。



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

abc();