此代码示例与与事件触发器的 if 语句配对的普通函数声明有何不同?简洁是唯一的优势吗?
xmlhttp.onreadystatechange=function()
{
if (xmlhttp.readyState==4 && xmlhttp.status==200)
{
document.getElementById("myDiv").innerHTML=xmlhttp.responseText;
}
}
此代码示例与与事件触发器的 if 语句配对的普通函数声明有何不同?简洁是唯一的优势吗?
xmlhttp.onreadystatechange=function()
{
if (xmlhttp.readyState==4 && xmlhttp.status==200)
{
document.getElementById("myDiv").innerHTML=xmlhttp.responseText;
}
}
在 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'
标识符函数是一个保留字,它是FunctionDeclaration或FunctionExpression的开始。如果它在语句的开头(或更准确地说,在语句可以出现的地方),它被解释为FunctionDeclaration并且必须是以下形式:
function <name> (<parameter list>) { <function body> }
FunctionDeclaration中的名称是必需的。
如果它不在语句的开头,则它是一个FunctionExpression并且名称是可选的,例如它可以是:
(function () {…})
var a = function () {…};
someFunction(function () {…})
等等。在所有情况下,它都会返回对可以分配(例如,变量)、调用、传递给其他函数或忽略的函数的引用。
它表示将要为给定事件发生调用的函数。
在您的上下文中,当xmlhttp.onreadystatechange=
事件发生时,function()
块被执行。
你也可以这样写
xmlhttp.onreadystatechange=myfunction;
function myfunction()
{
//code to execute
}
这是分配给对象onreadystatechange
属性的正常功能,xmlhttp
可以通过以下方式触发:
xmlhttp.onreadystatechange();
看教程:
了解更多。
你真的应该先学习基础知识:)
Javascript 支持匿名函数对象。当您想要执行与事件相关的代码块时,您必须将您的代码包装到一个函数中。如果您不需要特定的功能(您不想重用代码),您可以让您的功能匿名。
xmlhttp.onreadystatechange = function () { ... }
这与这样做类似:
function foo() { ... }
xmlhttp.onreadystatechange = foo;
但在这种情况下,您可以在任何需要的地方重用 foo。
它是一个函数。将其视为可以在以后执行的代码块。
function(){...}
是一个无名(“匿名”)函数表达式。如果将其分配给变量或将其用作参数,则不需要名称。在您的示例中,您将该函数对象分配给 xhr 对象的处理程序属性,它将被用作回调。