如何console.log(new Date());
在控制台显示字符串?
如何在我的对象中模仿这种行为?
.toString()
在对象的原型中提供一个方法:
var Demo = function(){};
Demo.prototype.toString = function(){ return "Demo string"; };
var test = new Demo();
console.log(test); // results in "Demo string"
==
请注意,这可能会稍微改变代码的行为,因为如果左侧和右侧的类型不同,非类型安全比较运算符将在某些情况下使用此函数:
if(test == "Demo String"){
console.log("Equal!");
}
if(test !== "Demo String"){
console.log("But not same type!");
}
不过好像console.log
还没有标准化,所以没有统一的解决方案。请注意,您仍然可以使用console.log(test + "")
来触发toString
.