在 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/