什么是javascript中的“function()”?

时间:2012-04-10 06:08:28

标签: javascript

此代码示例与正常函数声明与事件触发器的if语句配对有何不同?简洁是唯一的优势吗?

xmlhttp.onreadystatechange=function()
{
  if (xmlhttp.readyState==4 && xmlhttp.status==200)
    {
    document.getElementById("myDiv").innerHTML=xmlhttp.responseText;
    }
  }

7 个答案:

答案 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属性,在该属性中它将用作回调。