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

  • 相关阅读:
    JS对象—对象总结(创建、属性、方法)
    总结30个css选择器
    null、undefined、typeof、instanceof
    Hybrid App 原理解析
    promise与async-await
    你不知道的javascript
    Function.prototype.toString 的使用技巧
    Javascript中的valueOf与toString
    HTML5 Page Visibility
    深入理解css3中 nth-child 和 nth-of-type 的区别
  • 原文地址:https://www.cnblogs.com/bingguang/p/4999996.html
Copyright © 2011-2022 走看看