函数定义语句:function 函数名 (参数) {执行语句块];
调用函数是可以传入任意多的参数而不影响函数调用。
arrguments关键词
js的函数内部有一个关键词arguments,这个关键词只在函数内起作用,指向函数调用者传入的所有参数。如:
function test(x)
{
allert(x); //1
for(var i =0;i<arguments.length;i++){
alert(arguments[i]) //1,2,3
}
};
test(1,2,4);
即使在定义函数是没有定义参数列表,也可以使用arguments获取传入的所有参数:
function test()
{
for(var i =0;i<arguments.length;i++){
alert(arguments[i]) //1,2,3
}
};
test(1,2,3);
rest关键字
为了得到已定义参数以外 的其他参数,我们可以使用rest关键字,rest写在参数列表的最后面,用...三个点标识。这个关键词会将所有多余的参数收集为数组,如果参数不够或者刚刚好,就会为空数组。
function foo(x,y,...rest)
{
alert(x);
alert(y);
console.log(rest);
]
foo(1,2,3,4,5)
// 1
//2
//[3,4,5]
this变量
this是一个特殊变量,它指向当前的对象,要保证使用正确,必须用obj.xxx这种形式调用。
apply
这是个函数本身的方法,可以通过它改变this的指向。传入两个参数,一个是需要绑定的this变量,一个个函数的参数列表,如:fun.apply(obj,[a,b])