二十九、函数的重载及arguments
介绍
29.1 函数的重载
重载的概念:
在一个程序中,声明多个函数名相同,参数类型及参数的个数不同的函数,叫函数的重载。表示不同函数
但是,在JS
中,没有重载的概念,因为声明多个相同的函数名时,后面的会覆盖前面的相同函数名。
1 | <script> |
在JS中,没有重载的概念,因为声明多个相同的函数名时,后面的会覆盖前面的相同函数名。不会出现重载的问题
当实参的数量,小于形参的数量,前面的会依次匹配,后面不够的会认为是
undefined
当实参的数量,多余形参的数量,前面的会依次匹配,多余的实参不要了
29.2 arguments
模拟函数的重载
我们可以通过arguments
来模拟函数的重载。
29.2.1 arguments
对象
arguments
对象是我们JS中一个特殊的对象,它是一个类数组,具有索引值,索引从0
开始依次递增。通过索引可以获取到对应的值。
具有属性length
,获取参数的数量。
1 | <script> |
arguments
是函数内部自带的类数组对象。保存的是函数执行时的实际参数。
1 | // 声明函数 |
数据类型是对象
在读取数据时和数组方式相同
保存的是函数执行时的实际参数。
数据类型
1 | console.log(typeof arguments); |
读取 索引值从0开始
1 | console.log(arguments[0]); |
赋值
1 | arguments[0] = 100; |
length
也可以使用
1 | console.log(arguments.length); |
不能通过索引值将arguments
拉长
1 | arguments[10] = 10; |
arguments
只能通过length
将arguments
拉长
1 | arguments.length = 10; |
可以通过length
进行遍历
1 | for(var i = 0 ; i <=arguments.length - 1 ; i++){ |
不是所有数组的方法arguments
都可以使用
1 | arguments.slice(1,5); |
29.2.2 使用arguments
对象模拟函数的重载
通过arguments
对象可以遍历到每一个参数。那么此时思考通过这个特殊的参数,来进行不同数量的数值的求和。
1 | <script> |
1 | <script> |
1 | // 声明函数 |
1 | // 声明函数 |