从一个小场景学会使用 apply方法

需求

  • 需要自定义一个log方法,这个方法可以像原生的console.log一样
  • 在开发环境我希望调用这个log会输出日志信息,生产环境我希望即使调用了这个方法,也不会输出日志信息。

实现这个log

  • 可能要使用apply或者call方法
  • log的参数个数和类型都是不固定的
  • call的参数个数是固定的,要排除它
  • apply的参数是需要一个数组,这个合适,可以使用arguments来当做数组传递

代码

var MyLog = {
    silent: false,
    log: function(){
        if(!this.silent){
            console.log.apply(this, arguments);
        }
    }
};

试用

> MyLog.log(1,2,3, '4545');
1 2 3 "4545"
undefined

> MyLog.silent = true
true

> MyLog.log(1,2,3, '4545');
undefined

后记

  • 不要随处使用console.log,因为这样当你不需要日志输出的时候,你就要到处填坑了
  • 不要使用alert,这个很烦人
    原文作者:Carl
    原文地址: https://segmentfault.com/a/1190000008737887
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞