函数概述与定义


函数概述

函数是这样一段 JavaScript 代码,它只定义一次,但可以被执行或调用任意次,JavaScript 的函数是参数化的:函数的定义包括一个称为形参的标识符列表,函数调用会为形参提供实参值,函数使用实参值来计算返回值,成为该函数调用表达式的值。除了实参之外,每次调用还会拥有另一个值 —— 本次调用的上下文 —— this 关键字的值。

如果函数挂载在一个对象上,作为对象的一个属性,就称之为对象的方法,当通过这个对象来调用函数,该对象就是此次调用的上下文,也就是函数的 this 的值。

用于初始化一个新创建的对象的函数叫做构造函数。

在 JavaScript 中,函数也是对象,所以可以将其赋值给变量,也可以将其作为参数传递给其他函数。

JavaScript 函数可以嵌套在其他函数中定义,从而构成一个闭包(closure)。

函数定义

函数使用 function 关键字来定义,可用在函数定义表达式或函数声明语句里:

// 1、通过函数语句定义
// 通过递归计算阶乘
function factorial(x) {
  if (x <= 1) return 1;
  return x * factorial(x - 1);
}


// 2、通过函数表达式定义,将函数赋给变量
// 此例是递归函数,所以给它命名,一般这种方式定义的函数无需命名
var f = function fact(x) { 
  if (x <= 1) 
    return 1; 
  else 
    return x * fact(x-1); 
};

// 3、将函数作为参数传给其他函数
data.sort(function(a, b) { return a - b; });

// 4、函数定义后立即调用
var ten_squared = (function(x) { 
  return x * x; 
}(10));

大多数函数都包含一条 return 语句返回函数值,如果没有的话返回 undefined

函数命名规范

  • 任何合法的 JavaScript 标识符都可以作为函数名称,命名时尽量兼顾可读性和简洁性
  • 函数名称通常是动词或动词为前缀,第一个字符小写,多个单词以下划线分隔,如 like_this,或者采用另一种约定,如 likeThis,内部函数或私有函数以下划线开头,如 _like_this
  • 在一些框架里会为经常调用的函数指定短名称,如 jQuery 中的 $()

嵌套函数

在 JavaScript 中,函数可以嵌套在其他函数里:

function hypotenuse(a, b) {
    function square(x) { return x * x; }
    return Math.sqrt(square(a) + square(b));
}

嵌套函数可以访问嵌套它们的函数的参数和变量。


Vote Vote Cancel Collect Collect Cancel

<< 上一篇: 作为数组的字符串

>> 下一篇: 函数调用