捕获 javascript 个发送到 console.log 的对象
capturing javascript objects sent lo console.log
我已经使用 Stack Overflow here 中描述的方法来拦截控制台日志,但我无法获得与文本一起发送的对象。考虑以下代码:
var obj={result:true,type:"text"};
(function(){
var oldLog = console.log;
console.log = function (message) {
alert(message); // message does not return the object
oldLog.apply(console, arguments);
};
})();
console.log("hi",obj);
我要在 alert
代码行中写什么来代替 message
以获得 obj
对象?
您将多个参数传递给您的自定义 console.log
函数,但您仅在第一个参数上调用 alert
。要解决此问题,请遍历自定义 console.log
函数的参数,并对每个参数调用警报:
var obj={result:true,type:"text"};
(function(){
var oldLog = console.log;
console.log = function () {
for (var i = 0; i < arguments.length; i++) {
alert(arguments[i]);
}
oldLog.apply(console, arguments);
};
})();
console.log("hi",obj);
如果您希望只有一个显示所有对象的警报,那么您可以在 for 循环中连接它们的字符串表示,并在最后仅调用一次 alert
:
var obj={result:true,type:"text"};
(function(){
var oldLog = console.log;
console.log = function () {
var result = "";
for (var i = 0; i < arguments.length; i++) {
result += arguments[i] + " ";
}
alert(result);
oldLog.apply(console, arguments);
};
})();
console.log("hi",obj);
最后,如果您想在警报中查看对象的内容,可以在处理每个参数之前调用 JSON.stringify()
。
你可以试试这个
var obj={result:true,type:"text"};
(function(){
var oldLog = console.log;
console.log = function () {
alert(JSON.stringify(arguments));
oldLog.apply(console, arguments);
};
})();
我已经使用 Stack Overflow here 中描述的方法来拦截控制台日志,但我无法获得与文本一起发送的对象。考虑以下代码:
var obj={result:true,type:"text"};
(function(){
var oldLog = console.log;
console.log = function (message) {
alert(message); // message does not return the object
oldLog.apply(console, arguments);
};
})();
console.log("hi",obj);
我要在 alert
代码行中写什么来代替 message
以获得 obj
对象?
您将多个参数传递给您的自定义 console.log
函数,但您仅在第一个参数上调用 alert
。要解决此问题,请遍历自定义 console.log
函数的参数,并对每个参数调用警报:
var obj={result:true,type:"text"};
(function(){
var oldLog = console.log;
console.log = function () {
for (var i = 0; i < arguments.length; i++) {
alert(arguments[i]);
}
oldLog.apply(console, arguments);
};
})();
console.log("hi",obj);
如果您希望只有一个显示所有对象的警报,那么您可以在 for 循环中连接它们的字符串表示,并在最后仅调用一次 alert
:
var obj={result:true,type:"text"};
(function(){
var oldLog = console.log;
console.log = function () {
var result = "";
for (var i = 0; i < arguments.length; i++) {
result += arguments[i] + " ";
}
alert(result);
oldLog.apply(console, arguments);
};
})();
console.log("hi",obj);
最后,如果您想在警报中查看对象的内容,可以在处理每个参数之前调用 JSON.stringify()
。
你可以试试这个
var obj={result:true,type:"text"};
(function(){
var oldLog = console.log;
console.log = function () {
alert(JSON.stringify(arguments));
oldLog.apply(console, arguments);
};
})();