形参
- 可以在函数的()中来指定一个或者多个形参(形式参数)
- 多个形参之间使用,隔开,声明形参就相当于在函数内部声明了对应的变量,但并不赋值
function sum(a,b){
console.log(a+b);
}
实参
- 在调用函数时,可以在()中指定实参(实际参数)
- 实参将会赋值给函数中对应的形参
- 函数的实参可以是任意的数据类型(也可以是对象)
sum(1,2);
- 调用函数时解析器不会检查实参的类型,所以要注意,是否有可能会接受到非法的参数,如果有可能则需要对参数进行类型的检查
- 调用函数时解析器也不会检查实参的数量,多余的实参不会被赋值
- 如果实参的数量少于形参的数量,则没有对应实参的形参将是Undefined
1.当实参过多时,可以将参数封装到一个对象中,然后通过对象传递。
function sayHello(o){
console.log("我是"+o.name+",今年我"+o.age+"岁了,"+"我是一个"+o.gender+"人"+"我住在"+o.address);
}
var obj = {
name:"孙悟空",
age:18,
gender:"男",
address:"花果山"
}
sayHello(obj);
2.实参可以是一个对象,也可以是一个函数
function fun(a){
a(obj);
}
fun(sayHello);
3.sum()和sum
“fun(sum());”,sum()是调用函数,相当于使用函数的返回值
“fun(sum);”,sum是函数对象,相当于直接使用函数对象
4.立即执行函数
函数定义完立即被调用,这种函数叫做立即执行函数。立即执行函数只会执行一次。
语法:
(function(形参){
语句块
})(实参);
例如:
(function(){ //没有函数名的函数叫匿名函数
alert("我是匿名函数");
})();