学习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函数的函数。我见过的所有例子都使用第一种方式。这是更优选的风格吗?
答案 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();