前一阵子写了个小程序,调试的时候直接用console.log去输出,发现当我想要去掉输出的时候,得把所有console.log的地方都删除掉,想调试又得加回来,各种不方便,为了能更方便的调试,网上找了一堆代码,前半段都对,但输出的调试,不能直接定位到调用的那行,于是尝试自己更改了下,完美解决。有需要的朋友可以试试。
App({
getStackTrace : function () {
var obj = {};
Error.captureStackTrace(obj, this.getStackTrace);
return obj.stack;
},
log : function() {
var stack = this.getStackTrace() || ""
var matchResult = stack.split("at ");
var line = matchResult[5] || ""
for (var i in arguments) {
}
if (typeof arguments[i] == 'object') {
arguments[i] = JSON.stringify(arguments[i])
}
arguments[i] += " " + line.replace("Object.", "").replace("(", "").replace(")", "");
console.log.apply(console, arguments)
}
})
使用方法:
const app = getApp()
app.log("这是Debug,点击查看调试位置")
没有帐号? 现在注册.