美文网首页前端基础类学习
如何实现JS中的重载

如何实现JS中的重载

作者: 饥人谷_米弥轮 | 来源:发表于2017-11-02 18:18 被阅读14次

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>

相关文章

  • 如何实现JS中的重载

    1.JS由于不属于纯面向对象的语言,没有真正的重载,但是可以通过另外一些方法实现 重载,是指允许存在多个同名函数,...

  • PHP编程开发技巧:PHP中重载如何实现

    PHP编程开发技巧:PHP中重载如何实现,重载分为属性重载和方法重载,在PHP中的重载和在其它编程语言的重载不一样...

  • 4.js中如何实现重载

    在小项目中对于JavaScript使用,只要写几个function就行了。但在大型项目中,尤其是在开发追求 良好的...

  • JS如何实现“函数重载”

    函数的重载 在强类型语言中,可以为一个函数编写两个定义,只要这两个定义的签名(接受的参数的类型和数量)不同即可,即...

  • 【jq源码探秘】— js如何实现实现重载

    大家都知道js是没有重载的,但是通过某种方式是可以实现的,下面就是jq的实现方式: 凭直觉,函数重载可以通过if…...

  • JS实现函数重载

    重载 做过后端的,可能有函数重载的概念 但是在JavaScript中不存在重载,如果方法名一样的话,后面的会把前面...

  • 2.解决js中没有函数重载问题

    在js中没有重载: 相同名称的函数,最后一次声明的函数会覆盖之前声明的函数 解决js中没有重载的问题: 1.解决参...

  • c++的运算符重载

    C++中的加号重载:例:实现复数的相加 C++中的前置++重载:例:点的移动 C++中的后置++重载:例:点的移动

  • 2019-08-27

    Javascript的多态性 1.js不支持重载 /*****************说明js不支持重载*****...

  • Flutter-小知识点

    一:单利 二:如何实现类与类比较 可以用重载操作符实现

网友评论

    本文标题:如何实现JS中的重载

    本文链接:https://www.haomeiwen.com/subject/zmqapxtx.html