有人可以解释一下,为什么我们在JavaScript中使用回调?我找到了示例,但它们可以通过使用普通函数来实现.使用它有什么好处?我得到了"如何"使用它的答案,而不是"为什么和何时"我们需要使用它.
通常,我发现它在AJAX中使用.在...上httpRequest.onreadystatechange.这类似于Java的多线程吗?响应的听众如何以及在哪里?异步编程是否类似于多线程?
在以下代码中,控制流程如何:
function some_function(arg1, arg2, callback) {
var my_number = Math.ceil(Math.random() * (arg1 - arg2) + arg2);
callback(my_number);
some_different_function_not_callback(arg1);
}
some_function(5, 15, function(num) {
console.log("callback called! " + num);
});
Run Code Online (Sandbox Code Playgroud)
来自JQuery网站:
关于回调的特殊之处在于,在"父"之后出现的函数可以在回调执行之前执行"(参考:http://docs.jquery.com/Tutorials:How_jQuery_Works)
有人可以用一个例子向我解释这一行吗?
我目前正在编写JavaScript并且对回调感到困惑.我发现它不是那种内置函数...
我现在正在阅读O'Relly JavaScript第5版,它显示的示例代码如下所示:
getText = function(url, callback) // How can I use this callback?
{
var request = new XMLHttpRequest();
request.onreadystatechange = function()
{
if (request.readyState == 4 && request.status == 200)
{
callback(request.responseText); // Another callback here
}
}
request.open('GET', url);
request.send();
}
Run Code Online (Sandbox Code Playgroud)
基本上,我想我不明白一般的想法callback......有人可以写一个示例代码来利用callback上述优势吗?
在Javascript中,我已经看到回调函数作为最后一个参数传递我很好奇为什么呢?这是一种好的做法还是标准方式?
例如:
var doSomething = function(fname, lname, callback){
console.log("Your name is :"+ fname +" "+ lname);
callback();
}
var callback = function(){
console.log("Your name is printed successfully."):
}
doSomething('Arpit', 'Meena', callback); // callback is last parameter here
Run Code Online (Sandbox Code Playgroud)
我知道我们可以在任何位置传递它并且它有效但我只是想知道背后的原因.
谢谢.
我无法理解下面的代码.我来自Java背景.我该怎么看?有没有什么好的Java> Javascript书籍/教程我应该看看?
function sum(numbers) {
var total = 0;
forEach(numbers, function (number) {
total += number;
});
return total;
}
show(sum([1, 10, 100]));
Run Code Online (Sandbox Code Playgroud)
摘自http://eloquentjavascript.net/chapter6.html
我正在查看forEach(数字,函数(数字)...代码.匿名函数从何处获取'数字'?