Javascript回调-为什么这些回调的处理顺序不同?

Javascript回调-为什么这些回调的处理顺序不同?,javascript,callback,Javascript,Callback,在本例中,“second”函数是如何在第二时间执行的: <script> function first (callback){ alert ("I am first"); callback(); } function second (){ alert ("I am second"); } first(second); </script> 函数优先(回调){ 警惕(“我是第一”); 回调(); } 函数秒(){ 警惕(“我是第二”); } 第

在本例中,“second”函数是如何在第二时间执行的:

<script>
function first (callback){
    alert ("I am first");
    callback();
}

function second (){
    alert ("I am second");
}

first(second);
</script>

函数优先(回调){
警惕(“我是第一”);
回调();
}
函数秒(){
警惕(“我是第二”);
}
第一(第二);
但在本例中,第二个函数是首先处理的。为什么在调用第二个后添加()会产生不同

<script>
function first (callback){
    alert ("I am first");
    callback();
}

function second (){
    alert ("I am second");
}

first(second());
</script>

函数优先(回调){
警惕(“我是第一”);
回调();
}
函数秒(){
警惕(“我是第二”);
}
第一(第二());
()
放在保存函数的变量之后将调用该函数

第一(第二)
调用
第一个
并将
第二个
函数作为参数传递<代码>第一个将调用
回调
,这与
第二个


first(second())
调用
second
,然后调用
first
,并将
second()的返回值作为参数传递
first
随后将调用
undefined
(和error),因为这是存储vs执行的
second()的返回值。。。