摘要:需求需要自定义一个方法,这个方法可以像原生的一样在开发环境我希望调用这个会输出日志信息,生产环境我希望即使调用了这个方法,也不会输出日志信息。
需求
需要自定义一个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,这个很烦人
文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。
转载请注明本文地址:https://www.ucloud.cn/yun/82090.html
摘要:函数柯里化是把支持多个参数的函数变成接收单一参数的函数,并返回一个函数能接收处理剩余参数,而反柯里化就是把参数全部释放出来。但在一些复杂的业务逻辑封装中,函数柯里化能够为我们提供更好的应对方案,让我们的函数更具自由度和灵活性。 showImg(https://segmentfault.com/img/bVburN1?w=800&h=600); 柯里化(Curring, 以逻辑学家Has...
摘要:返回的新函数调用时也可以向原函数传递实参,这里就涉及顺序问题。返回的新函数被当成构造函数调用函数后返回的新函数,也可以被当做构造函数。使用,以原函数作为新对象的原型创建对象测试打印打印函数源码已实现完成,希望对你有帮助。 bind函数 bind 函数挂在 Function 的原型上 Function.prototype.bind 创建的函数都可以直接调用 bind,使用: fu...
摘要:基本操作理解写在前面在面向对象的语言中,关键字的含义是明确且具体的,即指代当前对象。一般在编译期确定下来,或称为编译期绑定。全局范围内当在全部范围内使用,它将会指向全局对象。输出浏览器中运行的脚本,这个全局对象是。 js基本操作-this理解 写在前面 在面向对象的语言中,this关键字的含义是明确且具体的,即指代当前对象。一般在编译期确定下来,或称为编译期绑定。而在 JavaScr...
阅读 2024·2021-11-19 09:58
阅读 1666·2021-11-15 11:36
阅读 2836·2019-08-30 15:54
阅读 3334·2019-08-29 15:07
阅读 2730·2019-08-26 11:47
阅读 2668·2019-08-26 10:11
阅读 2466·2019-08-23 18:22
阅读 2705·2019-08-23 17:58