问题
当我们开发时需要输出很多log信息,例如使用下面的函数
log = function(msg){ console.log(msg);}
在发布版中我们不希望打印log,因此在发布版将log函数置空如下
log = function(msg){};
但实际上这种方式不能防止参数部分的执行,如调用log(getName()),则其中的getName()无论如何都会被执行。
而我希望完全不执行log函数及其参数部分,需要怎么做呢?
答复
示例代码:
This is a trick.
1
2
3
4
5
6
7
8
9
|
var
noLog =
true
;
// release version
// noLog = false; // development version
log( noLog ?
null
: getName());
//all your log line, should have a form:
log ( noLog ?
null
: messageExpression );
//By this trick, when noLog is true, messageExpression will not be executed!
|
连接