匿名回调函数
Anonymous callback functions
所以,我对回调函数有一定的了解。例如,我完全理解这个:
function finalGuy(x) {
alert("Final Number: " + x);
}
function secondGuy(x, callback) {
x = x - Math.sqrt(x);
callback(x);
}
function firstGuy(callback) {
var x = parseInt(prompt("Enter a number"));
x *= x;
secondGuy(x, callback);
}
firstGuy(finalGuy);
然而,面对这样的事情,我似乎无法把握。
a(function () {
b(function () {
c()
})
});
有人可以将第一个回调序列翻译成与第二个回调类似的工作示例吗?具体来说,将一个结果传递给下一个回调,类似于我在第一个示例中所做的。
这两个产生相同的结果
1.
function acceptCallback(callback) {
callback();
}
function callback() {
console.log('callback invoked');
}
acceptCallback(callback); // => 'callback invoked'
2.
function acceptCallback(callback) {
callback();
}
acceptCallback(function() {
console.log('callback invoked');
});
在第一个例子中你传递了一个函数声明,在第二个例子中你传递了一个匿名函数
3。在要传递给另一个回调的回调范围内执行操作,又名 "callback hell"
这里没什么特别的,它的语法与前两个示例相同。这对任何人来说都很难阅读。
function first(callback) {
callback('from first');
}
function second(callback) {
callback('from second');
}
function third(callback) {
callback('from third');
}
function fourth(n, callback) {
callback(n * 10);
}
first(function(fromFirst) {
var a = 5;
console.log(fromFirst); // 'from first'
second(function(fromSecond) {
console.log(fromSecond); // 'from second'
third(function(fromThird) {
console.log(fromThird); // 'from third'
var b = a + 5; // 10
fourth(b, function(fromFouth) {
console.log(a, b, fromFourth); // 5, 10, 100
})
});
});
});
所以,我对回调函数有一定的了解。例如,我完全理解这个:
function finalGuy(x) {
alert("Final Number: " + x);
}
function secondGuy(x, callback) {
x = x - Math.sqrt(x);
callback(x);
}
function firstGuy(callback) {
var x = parseInt(prompt("Enter a number"));
x *= x;
secondGuy(x, callback);
}
firstGuy(finalGuy);
然而,面对这样的事情,我似乎无法把握。
a(function () {
b(function () {
c()
})
});
有人可以将第一个回调序列翻译成与第二个回调类似的工作示例吗?具体来说,将一个结果传递给下一个回调,类似于我在第一个示例中所做的。
这两个产生相同的结果
1.
function acceptCallback(callback) {
callback();
}
function callback() {
console.log('callback invoked');
}
acceptCallback(callback); // => 'callback invoked'
2.
function acceptCallback(callback) {
callback();
}
acceptCallback(function() {
console.log('callback invoked');
});
在第一个例子中你传递了一个函数声明,在第二个例子中你传递了一个匿名函数
3。在要传递给另一个回调的回调范围内执行操作,又名 "callback hell"
这里没什么特别的,它的语法与前两个示例相同。这对任何人来说都很难阅读。
function first(callback) {
callback('from first');
}
function second(callback) {
callback('from second');
}
function third(callback) {
callback('from third');
}
function fourth(n, callback) {
callback(n * 10);
}
first(function(fromFirst) {
var a = 5;
console.log(fromFirst); // 'from first'
second(function(fromSecond) {
console.log(fromSecond); // 'from second'
third(function(fromThird) {
console.log(fromThird); // 'from third'
var b = a + 5; // 10
fourth(b, function(fromFouth) {
console.log(a, b, fromFourth); // 5, 10, 100
})
});
});
});