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 学习。

  • 相关阅读:
    SQL SERVER数据库优化相关资料
    京东面试题
    Jenkins部署资料
    [POI2005]Bank notes 【多重背包】
    [Usaco2004Feb]Cow Marathon 树的直径
    [ZJOI2008]骑士 基环树
    种树 反悔操作 【贪心】
    Poj2442 Sequence 贪心+堆优化
    洛谷div2【XR-4】歌唱比赛
    洛谷div2【XR-4】模拟赛
  • 原文地址:https://www.cnblogs.com/bingguang/p/4999996.html
Copyright © 2011-2022 走看看