【发布时间】:2018-10-02 20:34:24
【问题描述】:
为什么在 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()?。这是类似的东西,但它仍然没有回答我的问题。非常感谢您提供清晰的解释。
【问题讨论】:
-
是的,现在我明白这里的原因是串联。谢谢你。因为如果我调用 alert(x) 它会弹出“Hello”。但是如果我调用 alert(""+x) 它会弹出 "42"。
标签: javascript types tostring