记录 一些有趣的js

记录 一些有趣的js

重写console.log

bind真是个有趣的东西,与apply,call 相似 主要是改变上下文this的指向的,但bind返回的是个函数,apply与call则是立即执行,在闲逛中发现,bind可以预先传入一些值,也可以不改变this的指向,那么可以把console.log写的好看简单些

console.log(123,456)	//输出 123 456 //首先console.log是可以传入多个参数的
var log=log||console.log.bind(null,'[log]');
log(123)		//输出 [log] 123
log.login=log.bind(console,'-login-');
log.login('登陆异常');	//输出 [log] -login- 登陆异常
log.vali=log.bind(console,'-vali_err-');
log.vali('校验异常');	//输出 [log] -vali_err- 校验异常
log('通常异常');		//输出 [log] 通常异常

当然闲逛时看到的是对js理解更深入的另一个版本:

function log(){
  var args = Array.prototype.slice.call(arguments);
  args.unshift('[app]');
  console.log.apply(console, args);
};
log('通知或异常');	//输出  [app] 通知或异常

https://www.cnblogs.com/moqiutao/p/7371988.html这里有着更详细的理解

写法上第一种更简洁些,而我对这两者的效率并不是很了解,bind毕竟是返回一个全新的函数,料想占用的内存或者效率什么的会差一些把。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值