Ответ 1
Не то, что я знаю, хотя Google Closure Compiler позволит вам выполнить что-то подобное, если хотите:
/** @define {boolean} */
var DEBUG_MODE = true;
var debug;
if (DEBUG_MODE) {
/** @param {...} args */
debug = function(args) { console.log.apply(console, arguments); }
} else {
/** @param {...} args */
debug = function(args) {}
}
debug('foo', {a: 5});
Если вы установили DEBUG_MODE
в false
(вы даже можете сделать это в командной строке, если хотите), тогда, когда расширенные оптимизации включены (вы должны выполнить некоторую работу, если хотите их использовать, но они 're handy), вместо этого будет использоваться пустая реализация debug
, которая вызовет его обращение к "inlined" (оптимизированное из существования).
Вы можете расширить это, чтобы иметь более сложные функции отладки, чем выше (что просто переводит на console.log
); например, вы можете создать тот, который принял аргумент функции, который вызывается в режиме отладки и не вызывается вне режима отладки.