js的重载

JavaScript037

js的重载,第1张

问:什么是重载?

答:同样的函数,不同样的参数个数。

《JS高级程序设计》里是提到过函数是没有重载的,ts中有重载。但是可以根据arguments的长度来实现重载。

最后定义的fn将前两个fn覆盖掉,所以没有达到重载的效果

虽然上述达到了想要的效果,但不是完美的实现js的重载。

高端实现js的重载做法是利用闭包。

参考资料: https://www.cnblogs.com/yugege/p/5539020.html

牙叔教程 简单易懂

它是指我们可以定义一些名称相同的方法,通过定义不同的输入参数来区分这些方法,然后再调用时,VM就会根据不同的参数样式,来选择合适的方法执行。

类名: OverLoading

三个max方法

autojs代码

autojs运行日志

可以看到, 默认两个参数调用方法 max(double a, double b) ,

除非加上参数类型: overLoading["max(int,int)"]

我认为他是一个代理

运行日志

max方法, 没有调用任何OverLoading的max方法, 因为他没有打印参数类型,

我写的OverLoading类里面, 如果调用了max, 必定会打印参数类型

实例化类, 调用实例的方法

一个参数不行

四个参数不行

因为原始的类里面的参数是2个或者3个,

JavaAdapter要重写max方法, 也必须和原始类有同样的参数个数,

不能多, 也不能少

重载是不可能的, 这辈子都不可能重载,

参数又不支持类型,

就是 判断参数个数 这种东西, 才能维持的了生活这样子,

用了 prototype 感觉就像回家一样,

类方法个个都能用,操作又方便,我超喜欢酱紫!

手机: Mi 11 Pro

Android版本: 12

Autojs版本: 9.1.13

名人名言

部分内容来自网络 本教程仅用于学习, 禁止用于其他用途