今天在工作中出现了这个对话,我无法完全理解其中的区别,到目前为止我的谷歌搜索没有结果。
工作中使用的示例是之间的区别
DoSomethingFunction().then(function(){ DoSomethingElse(); });
和
DoSomethingFunction().then(DoSomethingElse());
对我来说,我看第一个,它是一个匿名函数,所以它会被调用,并且在它的内部,是我们想要调用的函数,但这就是我使用第二个版本的原因,它只调用函数而不将其包装在单独的函数中。
有人可以向我解释一下其中的区别吗?
最佳答案
JavaScript 中的函数是对象,可以像任何其他对象一样传递。 DoSomethingElse
是一个可以使用 DoSomethingElse()
执行的函数对象。
.then
需要一个函数对象,因此以下代码仅执行该函数并返回其值,如果不返回任何内容,则返回 undefined
:
// this is wrong, unless `DoSomethingElse` returns a function
DoSomethingFunction().then(DoSomethingElse());
下面传递一个匿名函数(这是 .then
所期望的函数),然后在内部执行 DoSomethingElse
。
DoSomethingFunction().then(function(){
DoSomethingElse();
});
下面将函数对象传递给then
,并执行与上面相同的操作:
DoSomethingFunction().then(DoSomethingElse);
关于javascript - 调用函数和传递函数有什么区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20396481/