为什么在 console.log("" + x)中不会自动调用toString()?同样的情况是警告'功能。我在很多地方读过这些函数会自动将对象转换为带有toString()方法的字符串。
Number.prototype.toString = function ()
{
return "Hello!";
};
x = new Number(42);
console.log("" + x);
console.log("" + x.toString());

在提出问题之前,我正在寻找约两个小时的答案。我看到了这个链接Why does Boolean primitive not call prototype toString()?。这是类似的东西,但它仍然没有回答我的问题。非常感谢明确的解释。
答案 0 :(得分:2)
您可以更改valueOf
方法并将其用于获取原始值。
Number.prototype.valueOf = function () {
return "Hello!";
};
var x = new Number(42);
console.log("" + x);
console.log("" + x.toString());