首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >回调函数与从函数内部调用函数

回调函数与从函数内部调用函数
EN

Stack Overflow用户
提问于 2015-11-21 22:26:20
回答 4查看 70关注 0票数 1

我试图理解JS,我对回调模式感到非常困惑。

代码语言:javascript
复制
function one(){
    alert("I'm one!")
}

function total(arg, callback){
    setTimeout(function() {alert("I'm "+arg);}, 1000);
    callback();
}

total('all', one);

对比

代码语言:javascript
复制
function one(){
    alert("I'm one!")
}

function total(arg){
    setTimeout(function() {alert("I'm "+arg);}, 1000);
    one();
}

total('all');

one()作为参数传递给它与仅仅从函数内部调用它有什么好处?

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2015-11-21 22:32:29

我怀疑您的例子并不是用来展示回调是什么的。这更有意义吗?

代码语言:javascript
复制
function cb(arg){
    alert("I'm "+arg+"!")
}

function total(arg, callback){
    setTimeout(callback, 1000, arg);
}

total('one', cb);
票数 0
EN

Stack Overflow用户

发布于 2015-11-21 22:31:40

如果您知道总是要调用one,那么就没有必要接受它作为输入参数;您可以继续调用它。

接受回调的能力使您可以轻松地编写松散耦合的代码。

例如,在代码示例中将回调传递给setTimeoutsetTimeout知道在调用函数之前等待给定的毫秒数,但它不知道要调用哪个函数。

票数 3
EN

Stack Overflow用户

发布于 2015-11-21 22:34:25

传入回调函数允许您动态地影响程序的流。此外,还可以将total的结果作为参数传递给callback,后者通常用于启用异步编程。

代码语言:javascript
复制
function one(){
  alert("I'm one!")
}

function total(arg, callback){
  setTimeout(function() {
    if (callback) {
      callback();
    }
  }, 1000);
}
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/33849323

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档