我试图理解JS,我对回调模式感到非常困惑。
function one(){
alert("I'm one!")
}
function total(arg, callback){
setTimeout(function() {alert("I'm "+arg);}, 1000);
callback();
}
total('all', one);对比
function one(){
alert("I'm one!")
}
function total(arg){
setTimeout(function() {alert("I'm "+arg);}, 1000);
one();
}
total('all');将one()作为参数传递给它与仅仅从函数内部调用它有什么好处?
发布于 2015-11-21 22:32:29
我怀疑您的例子并不是用来展示回调是什么的。这更有意义吗?
function cb(arg){
alert("I'm "+arg+"!")
}
function total(arg, callback){
setTimeout(callback, 1000, arg);
}
total('one', cb);发布于 2015-11-21 22:31:40
如果您知道总是要调用one,那么就没有必要接受它作为输入参数;您可以继续调用它。
接受回调的能力使您可以轻松地编写松散耦合的代码。
例如,在代码示例中将回调传递给setTimeout。setTimeout知道在调用函数之前等待给定的毫秒数,但它不知道要调用哪个函数。
发布于 2015-11-21 22:34:25
传入回调函数允许您动态地影响程序的流。此外,还可以将total的结果作为参数传递给callback,后者通常用于启用异步编程。
function one(){
alert("I'm one!")
}
function total(arg, callback){
setTimeout(function() {
if (callback) {
callback();
}
}, 1000);
}https://stackoverflow.com/questions/33849323
复制相似问题