什么's调用函数和传递函数的区别
what's the difference between calling a function and passing a function?
今天在工作中出现了这段对话,我没有完全理解其中的区别,到目前为止,我在谷歌上的搜索一直没有结果。
工作中使用的例子是之间的差异
DoSomethingFunction().then(function(){DoSomethingElse();});
和
DoSomethingFunction()。然后(DoSometingElse());
对我来说,我看第一个,它是一个匿名函数,所以它会被调用,在它里面,是我们想要调用的函数,但这就是为什么我使用第二个版本,它只调用函数,而不将其封装在一个单独的函数中。
有人能向我解释一下其中的区别吗?
JavaScript中的函数是对象,可以像任何其他对象一样传递。CCD_ 1是可以用CCD_ 2执行的功能对象。
.then
需要一个函数对象,所以下面的函数只执行该函数并返回其值,如果不返回任何值,则返回undefined
:
// this is wrong, unless `DoSomethingElse` returns a function
DoSomethingFunction().then(DoSomethingElse());
下面传递一个匿名函数(这是.then
所期望的函数),然后在内部执行DoSomethingElse
。
DoSomethingFunction().then(function(){
DoSomethingElse();
});
下面将函数对象传递给then
,并执行与上面相同的操作:
DoSomethingFunction().then(DoSomethingElse);
传递函数意味着,函数作为参数传递,并且可以在被调用函数中调用。调用函数意味着函数体被执行,并返回一个值。在您的示例中
DoSomethingFunction().then(DoSomethingElse());
传递函数调用的结果,因此传递调用DoSomethingElse
的结果(返回值)。在的情况下
DoSomethingFunction().then(DoSomethingElse);
传递一个函数,然后需要在then
函数中执行该函数才能得到结果。
相关文章:
- 如何传递函数中的参数
- 如何在单击、Knockout时传递函数中的值
- D3选择html——传递函数时,索引从1开始,而不是从0开始
- 在谷歌地图的addListener事件中传递函数
- 如何在javascript中设置传递函数
- 什么's调用函数和传递函数的区别
- 在Angular Directive中传递函数作为参数不会;不起作用
- Skrollr:当滚动位置在最后一个关键帧之后时传递函数
- 在JS中传递函数作为参数,并访问接收函数's变量
- 如何在aspx页面中的转发器ItemDataBound中传递函数中的Control.ClientID
- setTimeout()/setInterval()赢得't执行**我正在传递函数对象,而不是执行函数
- WaveShaperNode的传递函数
- 在 .on('click') 事件处理程序中传递函数和函数参数
- 通过 x 标记访问器传递函数
- javascript:传递函数
- ES6类,传递函数作为参数来注册expressjs路由
- JavaScript:获取传递函数的参数
- 传递函数后不要更改对象
- 如何传递函数来比较项目
- 动态添加onclick到元素,传递函数参数