Please note, this is a STATIC archive of website developer.mozilla.org from November 2016, cach3.com does not collect or store any user information, there is no "phishing" involved.

函数表达式

function 关键字可用来在一个表达式中定义一个函数。

语法

function [name]([param1[, param2[, ..., paramN]]]) {
   statements
}

参数

name
函数名称。可被忽略,此种情况下的函数是匿名函数(anonymous)。 函数名称只是函数体中的一个本地变量。
paramN
被传递给函数的一个参数名称。一个函数至多拥有 255 个参数。
statements
构成函数体的语句。

描述

函数表达式(function expression)非常类似于函数声明(function statement)(详情查看函数声明,并且拥有几乎相同的语法。函数表达式与函数声明的最主要区别是函数名称(function name),在函数表达式中可忽略它,从而创建匿名函数(anonymous functions)。更多信息请查看函数和函数作用域

示例

下例定义了一个未命名的函数,并把它赋值给 x。该函数返回它的参数的平方:

var x = function(y) {
   return y * y;
};

命名函数表达式(Named function expression)

如果你想在函数体内部引用当前函数,则需要创建一个命名函数表达式。然后函数名称将会(且只会)作为函数体(作用域内)的本地变量。这样也可以避免使用非标准的 arguments.callee 属性。

var math = {
  'factorial': function factorial(n) {
    if (n <= 1)
      return 1;
    return n * factorial(n - 1);
  }
};

规范

规范 状态 说明
ECMAScript 3rd Edition (ECMA-262)
Function definition
Standard 初始定义。JavaScript 1.5 实现。
ECMAScript 5.1 (ECMA-262)
Function definition
Standard  
ECMAScript 2015 (6th Edition, ECMA-262)
Function defintions
Standard  

浏览器兼容性

Feature Chrome Firefox (Gecko) Internet Explorer Opera Safari
Basic support (Yes) (Yes) (Yes) (Yes) (Yes)
Feature Android Chrome for Android Firefox Mobile (Gecko) IE Mobile Opera Mobile Safari Mobile
Basic support (Yes) (Yes) (Yes) (Yes) (Yes) (Yes)

相关链接

文档标签和贡献者

 此页面的贡献者: Ende93, AlexChao, SphinxKnight, Nightire
 最后编辑者: Ende93,