Js函数中的参数

ECMAScript(欧洲计算机制造协会对JS的规范)函数的参数和其他语言中的函数参数有所不同。ECMAScript函数不介意传递进来多少个参数和参数类型。比如,你定义了一个函数接受两个参数,在调用的时候,你可以传一个、两个、三个……都没问题,就算不传,JS解析器也不会报错。ECMASript内部中的参数是用一个数组来表示的。函数接受到的是这个数组,该数组不关心参数个数,通过arguments可以访问参数数组


比如定义的函数:

<strong><span style="font-family:Microsoft YaHei;color:#3366ff;">function sayHi(name,message){
	alert("Helo"+name+","+message);

}</span></strong>


也可以这样写:

function sayHi(){
alert("Hello"+arguments[0]+","+arguments[1]);
}

可以这样写的原因是,在函数体内,可以通过arguments对象访问函数的参数数组,name的值可以通过arguments[0]来访问,message可以通过arguments[1]来访问
重写后的函数中不包括命名的参数,没有name、message标识符。这说明了ECMASript函数一个重要的特点:命名参数只提供便利,这点和其他语言,与Java有着明显的区别

通过访问arguments对象的length属性可以知道有多少个参数传递给了函数:

function sayHi(){

alert(arguments.length);

}

sayHi("David","How arre you");//2

sayHi();//0

知道这个特点,可以让函数接受任意个参数实现适当的功能。

function doAdd(){

if(arguments.length ==1){

alert(argumnts[0]+10);

}else if(arguments.length ==2 ){

alert(argumnts[0]+argumnt[1]);

}

}


由于上述 的特点,没有函数参数列表,所以不可能像Java一样实现重载,但是可以可以检查传入的参数的个数和不同的参数类型,可以实现“类似”重载的功能




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值