JavaScript高级程序设计(2)

本文探讨了JavaScript函数的重写方式,展示了如何利用arguments对象实现参数的灵活处理,即使在未明确指定参数的情况下也能正常工作。这为ECMAScript函数提供了类似于重载的效果。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

JS function重写方式
我们知道正常function的格式是:

function functionName(arg0,arg1,.....,argN){

    statements

}

function sayHi(name,message){

    alert("hello" + name + message)

}

其实ECMAScript函数是不介意传递进来多少个参数,也不在乎传进来参数是什么数据类型的。因为ECMAScript中的参数在内部是用一个数组来表示的。函数只是接受这个数组,而不关心数组中包含哪些参数。实际上,在函数体内通过arguments对象来访问这个参数数组,从而获取传递给函数的每一个参数。
其实,arguments对象只是与数组类似(它并不是Array的实例),因为可以使用方括号语法访问它的每一个元素(第一个元素是arguments[0],第二个元素是arguments[1]),使用length属性来确定有多少个参数。所以上面的那个函数也可以这样来重写:

function sayHi(){

    alert("hello" + arguments[0] + arguments[1])

}

这样重写后function不包含参数,但function的功能还是一样的。虽然这个特性算不上完美的重载,但也足够弥补ECMAScript这一缺憾了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值