0

如何console.log(new Date());在控制台显示字符串?

如何在我的对象中模仿这种行为?

4

1 回答 1

3

.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.

于 2013-01-01T21:36:35.050 回答