1
如果通過高級優化運行以下代碼,我仍然可以在代碼中看到調試語句。經過高級模式編譯使用Google Closure Compiler去除調試代碼
(function() {
var a = console.info.bind(console),
b = {
max: 100,
debug: !1
};
b.debug && a("This should be in debug mode only");
"function" == typeof alert && alert(b);
a("Brady", Math.random() * b.max | 0);
})();
如何才能擺脫調試信息與先進模式
var log = console.info.bind(console);
(function() {
/** @const */
var DEBUG = false;
log('Brady', createRank({
max: 100,
debug: DEBUG
}));
})();
function createRank(options) {
if (options.debug) {
log('This should be in debug mode only');
}
if(typeof alert == 'function'){
alert(options);
}
return (Math.random() * options.max) | 0;
}
輸出?
如果調試變量被定義爲全局的,和日誌記錄語句被封入等
如果(DEBUG){ 日誌( '調試消息'); }
那麼它會工作,但有沒有辦法讓它工作,如果我們不希望它作爲一個全局變量,而是通過參數傳遞給各個模塊/函數。
看起來這是接近我們會得到回答的問題 – sbr 2015-04-01 22:41:25