如何实现JS中的重载
标签:
JavaScript
1.JS由于不属于纯面向对象的语言,没有真正的重载,但是可以通过另外一些方法实现
重载,是指允许存在多个同名函数,而这些函数的参数表不同(或许参数个数不同,或许参数类型不同,或许两者都不同)。
纯面向对象语言实现重载的方式:(在javaScript上模拟展示)
<script type="text/javascript"> /* 函数名相同的情况下: 1、参数个数相同,类型不同,可以自动的区分函数 2、参数个数不同,也可以自动区分函数 */ function getData() { alert("将返回所有的数据"); } function getData(num) { alert("返回前" + num + "条数据"); } function getData(num1, num2) { alert("返回前" + num1 + " - " + num2 + "条数据"); } function getData(num, type) { } getData(20, 100); //调用时,根据参数或者类型的不同而进行调用</script>
JS实现重载的方式:
<script type="text/javascript"> function getDataAll() { alert("将返回所有的数据"); } function getDataTop(num) { alert("返回前" + num + "条数据"); } function getDataLimit(num1, num2) { alert("返回前" + num1 + " - " + num2 + "条数据"); } function getDataByType(type) { alert("将返回" + type + "类型的所有数据"); } function getdata() { var len = arguments.length; //通过arguments实现,判断参数列表判断调用哪个函数 if (!len) { getDataAll(); } else if (len == 1) { if (typeof arguments[0] == "number") { getDataTop.apply(this, arguments); } else { getDataByType.apply(this, arguments); } } else if (len == 2) { getDataLimit.apply(this, arguments); } } getdata("Array"); getdata(20,100);</script>
作者:饥人谷_米弥轮
链接:https://www.jianshu.com/p/a6aed612a64a
点击查看更多内容
为 TA 点赞
评论
共同学习,写下你的评论
评论加载中...
作者其他优质文章
正在加载中
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦