此代码示例与正常函数声明与事件触发器的if语句配对有何不同?简洁是唯一的优势吗?
xmlhttp.onreadystatechange=function()
{
if (xmlhttp.readyState==4 && xmlhttp.status==200)
{
document.getElementById("myDiv").innerHTML=xmlhttp.responseText;
}
}
答案 0 :(得分:3)
在Javascript中,您可能拥有所谓的匿名函数。在上面的代码中,当触发xmlhttp.onreadystatechange事件时,将执行匿名函数。其他例子是:
window.onkeypress = function(e) {
alert(String.fromCharCode(e.which));
}
或者你可以创建一个匿名的变量函数......
var myFunc = function(msg) { // Create function and assign to var
alert(msg);
}
myFunc("Hello World"); // Call new 'function'
答案 1 :(得分:2)
标识符 function 是一个保留字,它是 FunctionDeclaration 或 FunctionExpression 的开头。如果它位于语句的开头(或者更准确地说,在语句所在的位置),则它被解释为 FunctionDeclaration ,并且必须采用以下形式:
function <name> (<parameter list>) { <function body> }
FunctionDeclaration 中的名称是必需的。
如果它不在语句的开头,则它是 FunctionExpression ,并且名称是可选的,例如它可以是:
(function () {…})
var a = function () {…};
someFunction(function () {…})
等等。在所有情况下,它返回对可以分配的函数的引用(例如,变量),调用,传递给其他函数或忽略。
答案 2 :(得分:1)
它表示将在给定事件发生时调用的函数。
在您发生xmlhttp.onreadystatechange=
事件的上下文中,function()
块被执行。
您也可以将其写为
xmlhttp.onreadystatechange=myfunction;
function myfunction()
{
//code to execute
}
答案 3 :(得分:1)
这是普通函数,分配给onreadystatechange
对象的xmlhttp
属性,可以通过以下方式触发:
xmlhttp.onreadystatechange();
参见教程:
了解更多信息。
你应该首先学习基础知识:)
答案 4 :(得分:1)
Javascript支持匿名函数对象。 如果要执行与事件相关的代码块,则必须将其包装到函数中。如果你不需要特定的功能(你不想重复使用代码),你可以匿名保留你的功能。
xmlhttp.onreadystatechange = function () { ... }
与此类似:
function foo() { ... }
xmlhttp.onreadystatechange = foo;
但在这种情况下,您可以在任何需要的地方重复使用foo。
答案 5 :(得分:0)
这是一个功能。可以将其视为可以在以后执行的代码块。
答案 6 :(得分:0)
function(){...}
是无名(“匿名”)function expression。如果将其分配给变量或将其用作参数,则不需要名称。在您的示例中,您将该函数对象分配给xhr对象的handler属性,在该属性中它将用作回调。