一.函数
函数是由这样的方式进行声明的:关键字 function、函数名、一组参数,以及置于括号中的待执行代码。
函数的基本语法:
function name ( arg0 , arg1 , ... , argN ) {
statement
}
二.arguments对象
在函数代码中,使用特殊对象 arguments,开发者无需明确指出参数名,就能访问它们。
例如:arguments [ 0 ],代表函数中第一个参数。
属性 arguments.length 可以检测函数的参数个数。
函数重载:
function do ( ) {
if ( arguments.length == 1 ) {
alert ( arguments [ 0 ] + 1 ) ;
}
else if ( arguments.length == 2 ) {
alert ( arguments [ 0 ] + 10) ;
}
}
do ( 5 ) ; // 输出6
do ( 6 , 8) ; // 输出16
三.Function 对象(类)
Function 类可以表示开发者定义的任何函数。
用 Function 类直接创建函数的语法如下:
var function_name = new function ( arg1, arg2, ... , argN ,function_body )
在上面的形式中,每个arg都是一个参数,最后一个参数是函数主体(要执行的代码)。这些参数必须是字符串。
四.闭包
闭包,指的是词法表示包括不被计算的变量的函数,也就是说,函数可以使用函数之外定义的变量。
例如:
var iBaseNum = 10;
function addNum(iNum1, iNum2) {
function doAdd() {
return iNum1 + iNum2 + iBaseNum;
}
return doAdd();
}
这里,函数 addNum() 包括函数 doAdd() (闭包)。内部函数是一个闭包,因为它将获取外部函数的参数 iNum1 和 iNum2 以及全局变量 iBaseNum 的值。 addNum() 的最后一步调用了 doAdd(),把两个参数和全局变量相加,并返回它们的和。
这里要掌握的重要概念是,doAdd() 函数根本不接受参数,它使用的值是从执行环境中获取的。
可以看到,闭包是 ECMAScript 中非常强大多用的一部分,可用于执行复杂的计算。
提示:就像使用任何高级函数一样,使用闭包要小心,因为它们可能会变得非常复杂。