Javascript 什么';调用函数和传递函数有什么区别?

Javascript 什么';调用函数和传递函数有什么区别?,javascript,function,Javascript,Function,这段对话是在今天的工作中出现的,我不能完全理解其中的区别,我的谷歌搜索到目前为止一直没有结果 工作中使用的例子是 DoSomethingFunction().then(function(){ DoSomethingElse(); }); DoSomethingFunction()。然后(function()){ DoSomethingElse(); }); 及 DoSomethingFunction()。然后(DoSomethingElse(

这段对话是在今天的工作中出现的,我不能完全理解其中的区别,我的谷歌搜索到目前为止一直没有结果

工作中使用的例子是

DoSomethingFunction().then(function(){ DoSomethingElse(); }); DoSomethingFunction()。然后(function()){ DoSomethingElse(); }); 及

DoSomethingFunction()。然后(DoSomethingElse()); 对我来说,我看的是第一个,它是一个匿名函数,因此会被调用,在它里面,是我们想要调用的函数,但这就是为什么我使用第二个版本,它只调用函数,而不将它包装在单独的函数中


有人能给我解释一下区别吗

JavaScript中的函数是对象,可以像其他对象一样传递
DoSomethingElse
是一个可以使用
DoSomethingElse()
执行的函数对象

。然后
需要一个函数对象,因此下面的代码只执行函数并返回其值,如果它不返回任何值,则返回未定义的值:

 // this is wrong, unless `DoSomethingElse` returns a function
DoSomethingFunction().then(DoSomethingElse());
下面传递一个匿名函数(这是
所期望的,然后是一个函数),然后在内部执行
DoSomethingElse

DoSomethingFunction().then(function(){
  DoSomethingElse();
});
下面将函数对象传递到
然后
,并执行与上面相同的操作:

DoSomethingFunction().then(DoSomethingElse);

JavaScript中的函数是对象,可以像任何其他对象一样传递
DoSomethingElse
是一个可以使用
DoSomethingElse()
执行的函数对象

。然后
需要一个函数对象,因此下面的代码只执行函数并返回其值,如果它不返回任何值,则返回未定义的值:

 // this is wrong, unless `DoSomethingElse` returns a function
DoSomethingFunction().then(DoSomethingElse());
下面传递一个匿名函数(这是
所期望的,然后是一个函数),然后在内部执行
DoSomethingElse

DoSomethingFunction().then(function(){
  DoSomethingElse();
});
下面将函数对象传递到
然后
,并执行与上面相同的操作:

DoSomethingFunction().then(DoSomethingElse);

JavaScript中的函数是对象,可以像任何其他对象一样传递
DoSomethingElse
是一个可以使用
DoSomethingElse()
执行的函数对象

。然后
需要一个函数对象,因此下面的代码只执行函数并返回其值,如果它不返回任何值,则返回未定义的值:

 // this is wrong, unless `DoSomethingElse` returns a function
DoSomethingFunction().then(DoSomethingElse());
下面传递一个匿名函数(这是
所期望的,然后是一个函数),然后在内部执行
DoSomethingElse

DoSomethingFunction().then(function(){
  DoSomethingElse();
});
下面将函数对象传递到
然后
,并执行与上面相同的操作:

DoSomethingFunction().then(DoSomethingElse);

JavaScript中的函数是对象,可以像任何其他对象一样传递
DoSomethingElse
是一个可以使用
DoSomethingElse()
执行的函数对象

。然后
需要一个函数对象,因此下面的代码只执行函数并返回其值,如果它不返回任何值,则返回未定义的值:

 // this is wrong, unless `DoSomethingElse` returns a function
DoSomethingFunction().then(DoSomethingElse());
下面传递一个匿名函数(这是
所期望的,然后是一个函数),然后在内部执行
DoSomethingElse

DoSomethingFunction().then(function(){
  DoSomethingElse();
});
下面将函数对象传递到
然后
,并执行与上面相同的操作:

DoSomethingFunction().then(DoSomethingElse);

传递函数意味着函数作为参数传递,并且可以在被调用函数中调用。调用函数意味着执行函数体,并返回一个值。在你的例子中

DoSomethingFunction().then(DoSomethingElse());
您传递函数调用的结果,因此调用
DoSomethingElse
的结果(返回值)。 万一

DoSomethingFunction().then(DoSomethingElse);

传递一个函数,然后需要在
然后
函数中执行该函数以获得其结果。

传递函数意味着函数作为参数传递,并且可以在被调用函数中调用。调用函数意味着执行函数体,并返回一个值。在你的例子中

DoSomethingFunction().then(DoSomethingElse());
您传递函数调用的结果,因此调用
DoSomethingElse
的结果(返回值)。 万一

DoSomethingFunction().then(DoSomethingElse);

传递一个函数,然后需要在
然后
函数中执行该函数以获得其结果。

传递函数意味着函数作为参数传递,并且可以在被调用函数中调用。调用函数意味着执行函数体,并返回一个值。在你的例子中

DoSomethingFunction().then(DoSomethingElse());
您传递函数调用的结果,因此调用
DoSomethingElse
的结果(返回值)。 万一

DoSomethingFunction().then(DoSomethingElse);

传递一个函数,然后需要在
然后
函数中执行该函数以获得其结果。

传递函数意味着函数作为参数传递,并且可以在被调用函数中调用。调用函数意味着执行函数体,并返回一个值。在你的例子中

DoSomethingFunction().then(DoSomethingElse());
您传递函数调用的结果,因此调用
DoSomethingElse
的结果(返回值)。 万一

DoSomethingFunction().then(DoSomethingElse);

您传递一个函数,然后需要在
然后
函数中执行该函数以获得其结果。

非常好,但有几个地方我仍然感到困惑。如果.then需要一个函数,而DoSomethingElse()是一个函数对象,那么DoSomethingElse()不是函数吗?匿名函数和函数对象之间有什么区别?如果所有函数都是对象,那么匿名函数也是对象,或者是函数和函数对象的对象是两种不同的东西?函数是对象,匿名与否。当您添加
()
时,您正在执行函数并返回某些内容,因此,
DoSomethingElse()
不是函数,除非
DoSomethingElse
返回函数。看看这是否有助于理解非常好,但有几个地方我仍然感到困惑。如果.then需要一个函数,而DoSomethingElse()是一个函数对象,那么DoSomethingElse()不是函数吗?有什么区别