资讯专栏INFORMATION COLUMN

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

tomlingtm / 614人阅读

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

需求

需要自定义一个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

相关文章

  • 前端进击的巨人(五):学会函数柯里化(curry)

    摘要:函数柯里化是把支持多个参数的函数变成接收单一参数的函数,并返回一个函数能接收处理剩余参数,而反柯里化就是把参数全部释放出来。但在一些复杂的业务逻辑封装中,函数柯里化能够为我们提供更好的应对方案,让我们的函数更具自由度和灵活性。 showImg(https://segmentfault.com/img/bVburN1?w=800&h=600); 柯里化(Curring, 以逻辑学家Has...

    chengtao1633 评论0 收藏0
  • bind函数作用、应用场景以及模拟实现

    摘要:返回的新函数调用时也可以向原函数传递实参,这里就涉及顺序问题。返回的新函数被当成构造函数调用函数后返回的新函数,也可以被当做构造函数。使用,以原函数作为新对象的原型创建对象测试打印打印函数源码已实现完成,希望对你有帮助。 bind函数 bind 函数挂在 Function 的原型上 Function.prototype.bind 创建的函数都可以直接调用 bind,使用: fu...

    Eminjannn 评论0 收藏0
  • js基本操作-this理解

    摘要:基本操作理解写在前面在面向对象的语言中,关键字的含义是明确且具体的,即指代当前对象。一般在编译期确定下来,或称为编译期绑定。全局范围内当在全部范围内使用,它将会指向全局对象。输出浏览器中运行的脚本,这个全局对象是。 js基本操作-this理解 写在前面 在面向对象的语言中,this关键字的含义是明确且具体的,即指代当前对象。一般在编译期确定下来,或称为编译期绑定。而在 JavaScr...

    Steven 评论0 收藏0
  • webpack原理

    摘要:原理查看所有文档页面前端开发文档,获取更多信息。初始化阶段事件名解释初始化参数从配置文件和语句中读取与合并参数,得出最终的参数。以上处理的相关配置如下编写编写的职责由上面的例子可以看出一个的职责是单一的,只需要完成一种转换。 webpack原理 查看所有文档页面:前端开发文档,获取更多信息。原文链接:webpack原理,原文广告模态框遮挡,阅读体验不好,所以整理成本文,方便查找。 工作...

    trigkit4 评论0 收藏0

发表评论

0条评论

tomlingtm

|高级讲师

TA的文章

阅读更多
最新活动
阅读需要支付1元查看
<