定义
语法:
function 函数名([参数1,参数2 ... 参数n]){
语句
}
说明:
[ ]里的内容不是必须的,是可选的。
调用
语法:
函数名([参数1,参数2,...参数n])
返回值 return
函数会在执行完return语句后停止并立即退出。
任何函数通过return语句,把函数内部的值返回出来。
然后就可以通过API对向页面输出,或进行其他操作。
return也可以不带任何返回值,用于提前停止函数执行,又不需要返回值得情况。
实例:
function add(num1,num2){
var sum=num1+num2;
return sum;
}
//向页面输出
document.write(add(3,5));
//保存在变量里,等待被调用
var stt = add(-1,-9);
参数 —— arguments
JS中的参数在内部用一个数组来表示,在函数内部可以通过 arguments对象访问这个数组参数。
注意:
arguments对象只是与数组类似,并不是Array实例。
通过arguments.length[ ]获取参数个数
- 3.
实例1:
function add(num1,num2){
console.log(arguments[1]); //索引从0开始
}
add(5,10); //10
实例2:
求平均值
function getArg(){
//求和
var sum = 0;
for( var i = 0; i < arguments.length; i++){
sum+=arguments[i];
}
//把平均值return出去
return sum/arguments.length;
}
var avg = getArg(15,26548,1565,5256,15485);
console.log(avg);
回调函数 callback
函数1作为主函数的参数,并且在主函数执行完之后执行函数1,这就称作回调函数。
如下所示:
function add(x,y){
alert("我先显示");
return x()+y();
}
function 回调函数1(){
return 2;
}
function 回调函数2(){
return 3;
}
alert(add(回调函数1,回调函数2));
call( )
调用一个函数,替换当前函数。
语法:
新函数名称.call(被替代的函数名称,参数1,参数2,...参数n)
实例:
function add(a,b){
return a+b;
}
function sub(a,b){
return a-b;
}
alert(add.call(sub,5,10)); // 15
最终执行的add函数,sub函数被替换成add函数了。
apply( )
和call( )不同的是,参数用中括号[ ]括起来了。
语法:
新函数名称.call(被替代的函数名称,[参数1,参数2,...参数n])
实例:
function add(a,b)
{
alert(a+b);
}
function sub(a,b)
{
alert(a-b);
}
add.apply(sub,[3,1]);
自调函数
特点是:
立刻会被执行,只会执行一次。
不会产生全局变量。
语法:
(
function(){
})();
实例:
(
function(a,b){
alert(a+b);
}
)(3,5);
私有函数
父函数体内调用子函数,从外部可以调用父函数,但是不能调用子函数。
语法:
function father(参数){
var son = function(参数){
return 代码块;
}
return son(参数);
}
实例:
function a(param){
function b(param1){
return param1+10;
};
return '在a函数体内调用b函数的结果为:'+b(param);
}
document.write(a(5));