在JavaScript中,函数是第一等对象,不仅因为它既可以像普通对象一样拥有属性和方法,而且重要的是它可以被调用。简单来说它们是Function对象。
一个简单的函数
var add = function (a,b) { return a + b; } console.log(add(1,2));
//输出结果 3
闭包
function Test() {
var i = 0;
var f = function () {
return i++;
}
return f;
}
var f = Test();
console.log(f());
console.log(f());
函数属性
使用arguments对象
函数的实际参数会被保存在一个类似数组的arguments对象中。在函数内,你可以按如下方式找出传入的参数:
arguments[i];//i为数组下标
function Test() {
var sum = 0;
for(var i = 0;i < arguments.length; ++i)
{
sum += arguments[i];
}
console.log(sum);
}
Test(1,2,3,4);
//输出结果 10
length属性
指函数有多少个必需要传入的参数,默认的参数不算
如:
function (x=0);的length为0;
函数的方法
函数也是对对象,具有一些自带的方法
call(): 使用一个指定的this值和若干个指定的参数调用某函数
fun.call(thisArg[,arg1[,arg2[,arg3]]]);
apply():方法在指定this值和参数(参数以数组或类数组对象的形式存在)的情况下调用函数
fun.apply(thisArg[,argsArray]);
bind():此方法会创建一个新的函数,当新函数被调用时,bind()的第一个参数将作为它运行时的this
func.bind(thisArg[,arg1[,arg2[,arg3]]]);