javascript - 是否有一种方法可以覆盖 JavaScript 对象以控制 console.log 显示的内容?

标签 javascript google-chrome firebug

我特别想到 Chrome,尽管 Firebug 会很有趣。我试过 toString() 和 valueOf(),但似乎都没有用过。有趣的是,如果我使用一个函数,它会显示函数定义 - 但如果我添加一个 toString() 方法,它会显示 null!

var a = function(){};
console.log(a); // output: function (){}
a.toString = function(){ return 'a'; };
console.log(a); // output: null
a.valueOf = function(){ return 'v'; };
console.log(a); // output: null

有什么想法吗?

最佳答案

我不知道。最好的办法是在要记录的对象上定义一个 toString() 方法,然后直接或间接调用它:

var o = {};
o.toString = function() {
    return "Three blind mice";
};

console.log("" + o);
console.log(o.toString());

关于javascript - 是否有一种方法可以覆盖 JavaScript 对象以控制 console.log 显示的内容?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2960936/

相关文章:

javascript - 如何在 html/css/js 中呈现跨媒体栏(PS3 UI)

javascript - 如何捕捉谷歌浏览器审计灯塔

asp.net - Chrome 87 在针对 Windows IIS 10 的 CORS 中的 Windows 身份验证失败

jQuery - 选项上的选定属性未显示在 FireBug 中

javascript - Promise.then() 返回未定义值之后的 Promise.all()

javascript - jQuery 插件无法识别 .next()

javascript - 基于 Web 的 JavaScript 调试器

jquery - 如果我的页面需要ready()才能工作,这对我意味着什么

javascript - 关于重定向通知 - PHP/JS

windows - 如何在不将 chrome 窗口置于前台的情况下从 cmd (Windows) 打开 chrome 中的链接?