为什么使用angular度的$日志,而不是console.log?
我知道这是一个最好的做法,使用$log
而不是console.log
。 但是,我找不到解释原因的好文件。 为什么开发人员应该使用$log
?
$log
首先检查浏览器是否支持console.log
(IE 8,例如,不)。 这可以防止在IE 8上显示错误。注意:这并不意味着它会loggingIE 8上的任何内容,它只是意味着它不会抛出错误。
接下来,它还允许你装饰和嘲笑$log
进行扩展和testing的目的,如果你是如此的倾向。 你可以例如装饰它login到一个数组为IE 8的支持。
一个额外的function:如果你传递一个JavaScript Error
实例,它会尝试很好地格式化它。 这可以通过阅读源代码find 。
编辑: “不是说IE 8不支持console.log,它只是不创build控制台对象,直到开发工具打开。 请参阅下面的评论以获取更多详细信
只要完成@史蒂夫的答案 (这是正确的), $log
也有被closures的优势。 使用这段代码,你可以禁止$log
:
app.config(function($logProvider) { $logProvider.debugEnabled(true); });
如果您想一次禁用所有日志,而不是手动逐行删除它,这非常方便。