需求

  • 需要自定义一个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,这个很烦人

从一个小场景学会使用 apply方法相关推荐

  1. 用three.js写一个小场景

    上次我们用three.js写了一个下雨的动画,主要是用粒子.这次是用three.js搭建了一个小场景. 项目地址依然是:https://github.com/alasolala/threejs-tut ...

  2. 微信小程序从入坑到放弃二十九:一个小场景搞懂冒泡事件bindtap和catchtap的区别

    摘要: 在微信小程序中,bindtap事件会产生冒泡,若不加以拦截,会一直冒泡到顶端.在某些情况下,一次点击会触发若干点击事件.为了防止冒泡,使用catchtap即可解决问题.在有全屏半透明背景的弹出 ...

  3. panda中的apply()方法介绍

    1.apply()说明 作用范围:pandas中的Series和DataFrame 作用:通过使用apply()方法,我们可以调用自己定义的函数,使得代码结构更加清晰,简洁. 2.apply()的应用 ...

  4. 表白小游戏教程:制作一个小游戏送给喜欢的TA(不会编程也能学会哦)

    大家好哇~ 欢迎翻开波波和阿菌的长篇故事~ 不过捏,今天我们不讲故事,今天将由阿菌和大家分享一个小教程:教大家制作一个小游戏,可以用来送给喜欢的人.无须任何计算机专业基础,只要能操作电脑,并在初一的数 ...

  5. 微信小程序开发打开另一个小程序的实现方法

    微信小程序打开另一个小程序,有两种方法:1.超链接:2.点击按钮. 全局配置: 跳转到其他小程序,需要在当前小程序全局配置中配置需要跳转的小程序列表,代码如下: App.json {..." ...

  6. Jmeter Web 性能测试入门 (四):一个小实例带你学会 Jmeter 脚本编写

    测试场景: 模拟并发100个user,在TesterHome 站内搜索VV00CC 添加线程组 添加HTTP信息头管理器 添加HTTP Sampler 填写HTTP Sampler中的信息 添加监听器 ...

  7. 小程序开发之场景值及使用方法

    场景值 场景值ID 说明 1001 发现栏小程序主入口,"最近使用"列表 1005 顶部搜索框的搜索结果页 1006 发现栏小程序主入口搜索框的搜索结果页 1007 单人聊天会话中 ...

  8. python 子图_python 实现在一张图中绘制一个小的子图方法

    有时候为了直观展现图的信息,可以在大图中添加小子图的方式进行数据分析,如下图所示: 具体的代码如下:该图连接了数据库,当然重要的不是数据展示,而是添加子图的方法. import matplotlib. ...

  9. python画50个图-python 实现在一张图中绘制一个小的子图方法

    有时候为了直观展现图的信息,可以在大图中添加小子图的方式进行数据分析,如下图所示: 具体的代码如下:该图连接了数据库,当然重要的不是数据展示,而是添加子图的方法. import matplotlib. ...

最新文章

  1. oracle实时监控触发邮件,利用EasySQLMAIL实现数据库订单监控和邮件发送
  2. 小时级部署,客户数上千,神策数据的私有化部署靠什么取胜?
  3. mongodb 持久性_多语言持久性:带有MongoDB和Derby的EclipseLink
  4. HDU 5781 ATM Mechine(概率dp)
  5. 关于计算机游戏的英语读法,关于电脑游戏的英语作文
  6. String 字符串
  7. C/C++中的static和extern关键字
  8. js基础-12-判断数组和判断对象的方法
  9. 分层导航and隐藏导航
  10. 总结 工作法(时间管理+复盘)
  11. matlab中textscan函数的用法,matlab中textscan format内容的用法.doc
  12. 用NI的数据采集卡实现简单电子测试之2——绘制三极管输出特性曲线(面)图...
  13. MySQL学习2:表的创建和增删改
  14. 1.Btn、Div特效---利用border
  15. graphpad prism怎么添加图例_Graphpad Prism:如何制作柱状图
  16. Excel学习笔记:P13-页首、页尾设计、表格加水印
  17. 详解美股中的几种交易单-限价单、市价单、止损单、止损限价单、跟踪止损单
  18. 模电数电EDA实验开发系统实验设备QY-MS301D
  19. Intellij搭建spark开发环境
  20. 遍历同辈节点的方法_jquery如何遍历节点

热门文章

  1. 工作流 节点子线程_节点JS体系结构–单线程事件循环
  2. MapInfo启动时,提示the Microsoft jet engine is not available
  3. linux中proc文件系统 -- ldd3读书笔记
  4. C语言基础教程篇之程序结构
  5. Java基础篇:如何使用instanceof
  6. 什么是接口?如何定义接口?如何实现接口?
  7. jmeter 一个可能引起性能严重下降的断言设置
  8. C语言嵌入式系统编程修炼之(四)屏幕操作
  9. jQuery checkbox全选问题
  10. Coolite一个简单例子-GridPanel列表增删改预览