为了账号安全,请及时绑定邮箱和手机立即绑定

如何实现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 点赞

若觉得本文不错,就分享一下吧!

评论

作者其他优质文章

正在加载中
  • 推荐
  • 评论
  • 收藏
  • 共同学习,写下你的评论
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦
今天注册有机会得

100积分直接送

付费专栏免费学

大额优惠券免费领

立即参与 放弃机会
意见反馈 帮助中心 APP下载
官方微信

举报

0/150
提交
取消