zoukankan      html  css  js  c++  java
  • 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 学习。

  • 相关阅读:
    P1440 求m区间内的最小值
    P1569 Generic Cow Protests
    P3252 [JLOI2012]树
    P3009 [USACO11JAN]Profits S
    <二分查找+双指针+前缀和>解决子数组和排序后的区间和
    常见算法技巧之——双指针思想
    设计模式——单例模式
    操作系统实验——读者写者模型(写优先)
    操作系统——内存管理学习笔记
    Altium Designer 16下载与安装教程
  • 原文地址:https://www.cnblogs.com/bingguang/p/4999996.html
Copyright © 2011-2022 走看看