为什么使用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); }); 

如果您想一次禁用所有日志,而不是手动逐行删除它,这非常方便。