• 关于js 重载


    拜读js忍者修炼一书 读到关于js函数重载内容这个模块

      主要是介绍通过js的访问argument这个参数来实现js函数的重载

      通过在函数内部进行判断js argument参数的长度

       代码如下所示

    var ninja = {
      whatever: function(){
        switch(arguments.length){
        case 0:
          /* do something */
        break;
        case 1:
          /* do something else */
        case 2:
          /* do yet something else */
        break;
        // and so on...
        }
      }
    }

    但是这种实现方式不够忍者,不够简洁

    作者给了我们一种更加牛逼的实现方式,在调用的时候添加函数逻辑

    var ninja = {}
    addMethod(ninja, ‘whatever’, function(){/* do something */});
    addMethod(ninja, ‘whatever’, function(a){/* do something else */});
    addMethod(ninja, ‘whatever’, function(a,b){/* yet something else */});

    现在问题的关键就在于如何实现addMethod这个函数了

    //Listing 4.15 A method overloading function
    function addMethod(object, name, fn){
      var old = object[name];
      object[name] = function(){
      if (fn.length == arguments.length)
        return fn.apply(this, arguments)
      else if (typeof old == 'function')
        return old.apply(this, arguments);
      }
    }

    上述代码是在针对添加方法的重载

    在文章的最后感谢作者根据自己的多年开发经验写出了这么一本好书,为我的进阶之路提供了诸多指导,感谢这些大方不自私的人 惭愧

  • 相关阅读:
    会计继续教育
    免费看电影、电视剧的app
    微信开发者工具 测试过程的小助手
    2022年目标
    基于.Net6.0开发WebApi(一) —— 搭建项目框架
    asp.net中的省市区联动封装成用户控件
    uniapp文件下载
    Axure中动态表格序号自增中继器应用方法2
    JSinDeep1:探索执行环境 (Execution Context)ES3篇
    美国知名天使投资人列出愿意投资的30大创意方向
  • 原文地址:https://www.cnblogs.com/wiggin-Z/p/11088579.html
Copyright © 2020-2023  润新知