重载overload

一、什么是重载

相同函数名,不同形参列表的多个函数,在调用时,可根据出入的实参值列表不同,自动选择对应的函数版本执行不同的操作。


二、为什么要使用重载

为了减少函数的个数,减轻调用者的负担。


三、何时使用

如果一件事,可能根据传入的实参值不同,执行不同的操作时,就可以用重载方式来实现。


四、存在问题

js语言不支持类似java中的重载效果,因为js语言不允许多个同名函数同时存在,如果强行定义多个同名函数同时存在,最终结果只有最后一个函数能幸存下来


五、解决

借助于arguments对象来变通实现重载效果。

(1).什么是arguments:

    a.每个函数中自带的——不用创建就可直接使用

    b.自动接收所有传入函数的实参值——用途

    c.的类数组对象——存储结构和数据类型、

        1).什么是类数组对象: 长得像数组的对象

        2). vs数组:

            i.相同: 1.下标, 2. length属性, 3. 可以用for循环遍历

            ii.不同:类型不同!类数组对象无法使用数组家的函数!

(2).何时:将来只要调用时,实参值的个数不确定有几个!即可用arguments来接住所有实参值

(3).如何: 3步:

    a.只定义一个函数,且不要定义任何形参变量!

    b.在函数内,arguments对象会自动获得将来传入的所有实参值列表

    c.在函数内,可通过判断传入的实参值个数(arguments.length)或实参值内容arguments[i]不同,来决定执行哪种不同的业务逻辑

你可能感兴趣的:(重载overload)