简而言之函数只不过是一组执行某个操作的语句。函数可能会有一些输入参数(在函数体中使用),并在执行后返回值。 JavaScript函数也具有这些特性,但它们不仅仅是常规函数。JavaScript函数是对象。你可以查看我曾经写的关于JavaScript对象的文章,里面我提到几乎JavaScript中的所有一切都是对象。 作为对象,JavaScript函数可能会有属性和其他函数(方法)。让我们来看看JavaScript中的一个典型的函数定义。 function myNotSoGreatFunc(visitor) { console.log("Welcome to Code Morning Mr. " + visitor); } 没错。上面的函数不涉及什么宏伟大业,因为它仅是对博客访问者表示了欢迎。但它展示了JavaScript函数的样子。函数定义从关键字function开始,然后是函数名,空的或有参数的括号。实际的函数代码(JavaScript语句)被封装在一对花括号内{ }。对于函数而言,return语句是可选的。JavaScript函数总是会返回一个值。当function主体中没有return语句时,那么function返回undefined。
匿名函数 JavaScript函数可以是匿名的。这意味着你可以从函数声明中省略函数名。但是,函数必须存储在变量中。 var addNumbers = function (x, y) { return x + y; } 上述语法被也被称为函数表达式。你可以把变量addNumbers 当作函数名,以及像下面这样调用该函数。 var sum = addNumbers(2, 3); 当你想传递一个函数作为参数给另一个函数时,函数表达式就非常方便了。让我们用一个简单的例子来试着了解这一点。 var add = function (first, second) { return first + second }; var multiply = function (first, second) { return first * second }; function calculate(fun, a, b) { return fun(a, b); } 首先我已经创建了两个匿名函数。第一个返回两个数的加法运算,第二个返回两个数的乘法运算。相当简单,没有什么可值得炫耀的地方。然后,我定义函数calculate,这个函数接受函数作为第一个参数后跟两个参数接受两个数字。 我可以通过传递任意函数作为第一个参数来调用函数calculate。 var sum = calculate(add, 2, 3); // sum = 5 var multiplication = calculate(multiply, 2, 3); // multiplication = 6