javascript - 从 console.log() 自定义文本

标签 javascript

在 Ruby 中,我们有 #inspect ,如果被覆盖将更改 p 的输出类似 #<Vector:0x00000000b5e2a8> 的函数自定义字符串。

在 Javascript 中,使用 console.log() 时默认的对象到字符串转换在 Chrome 中通常相当不错(它是可点击的、语法高亮的 JSON),但在某些情况下却不太方便。有没有办法以类似于 Ruby 的方式更改文本表示 #inspect

例如,我想转换这个

Vector {x: 0, y: 0, add: function, subtract: function, ...}

简单地Vector(0, 0) .

最佳答案

您可以添加自定义 toString 方法:

Vector.prototype.toString = function(){ return 'Vector('+this.x+','+this.y+')'; };
console.log(vector+'');

或者您可以使用自定义日志函数:

function log(vector){ console.log('Vector('+vector.x+','+vector.y+')'); }
log(vector);

关于javascript - 从 console.log() 自定义文本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22237607/

相关文章:

javascript - Html 将 div 附加到另一个 div 中

javascript - 使用 require.js 进行 knockout - 不在我配置的 'paths' 部分中寻找 knockout

javascript - 在 Canvas 内点击按钮动态添加矩形

javascript - “document.write(‘hello world\n’ 之间有什么区别);”和 “document.writeln(‘hello world’);”?

javascript - 如何根据用户输入检索并设置该月的最后一天?

javascript - 求json字符串的长度

javascript - 我怎样才能让 redux-saga 以任何顺序等待两个 Action 至少发生一次?

javascript - 在点击事件触发之前设置默认值

javascript - 在 Zepto 动画函数中使用变量

javascript - 如何在 JavaScript 中检查输入是否包含字符串