• js 方法重载


    js  方法重载

    比如  

       function fun1(obj) { alert(1) }
        function fun1(obj, obj1, obj2) { alert(3) }
        function fun1(obj2,obj3) {alert(2) }
        fun1();

    最后 弹出 的是 2。因为 覆盖了!

    一般这样做:

        function fun1(obj) { alert(1) }
        function fun3(obj, obj1, obj2) { alert(3) }
        function fun2(obj, obj1) { alert(2) }
      
    
        function funAll(obj, obj1, obj2, obj3) {
            if ( arguments.length == 1) {
                fun1(obj);
            }
            else if ( arguments.length == 2) {
                fun2(obj, obj1);
            }
            else if ( arguments.length == 3) {
                fun3(obj, obj1, obj2);
            }
    
            //这里写代码 才能体现 重载的意义
            // We  Can do Something...
        }
    
        funAll("");
        funAll("", "");
        funAll("", "","");


     不过是利用了 Function 内部 的 arguments,  function 就是 js 内部对象  Function  。 监视可以看到 Function 里面 有 arguments 属性、caller 属性。

    参见:http://www.jb51.net/article/43987.htm

    调用函数的时候 ,小括号里面 的 参数  可以和定义的 数量 不一样,反正 都可以 通过 arguments获取,比如:

    <input type="button" onclick="fun(1)" />
    <script>
        function fun() {
            if (arguments.length===1) {
                alert(arguments[0]);//1
            }
        }

    再比如说:

    <input type="button" onclick="fun()" />
    <script>
        function fun(obj) {
            if (arguments.length === 1) {
                alert(arguments[0]);
            } else {
                alert(0);  //0
            }
        }

      谈到 了Function 对象,可以参见 http://www.w3school.com.cn/js/pro_js_functions_function_object.asp

    比如:

     new Function  第一个参数 是 参数名称,第二个参数 是 代码块。

    var doAdd = new Function("iNum", "alert(iNum + 20)");
    var doAdd = new Function("iNum", "alert(iNum + 10)");
    doAdd(10);

    这就是 关于  js 的进阶 学习了。 参见 w3school  里面  ECMAScript 学习。

  • 相关阅读:
    常用centos命令,经常忘记
    大数据hadoop之最简单理解
    企业级私有镜像仓库Harbor
    docker 修改国内源
    docker镜像仓库
    Dockerfile
    通过docker搭建LNMP平台(以wordpress为例)
    蓝鲸问题库
    docker常用命令
    LVS+Keepalive双机热备 <转>
  • 原文地址:https://www.cnblogs.com/bingguang/p/4999996.html
Copyright © 2020-2023  润新知