【发布时间】:2020-10-08 16:29:20
【问题描述】:
所以我在看一本 Js 的书,偶然发现了 Object to Primitive 转换这个美丽的话题。 作者在书中说
由于历史原因,如果 toString 或 valueOf 返回一个对象,没有错误,但该值被忽略(就像方法不存在一样)。那是因为在古代,JavaScript 中没有好的“错误”概念。
现在我尝试了这个,但没有像书中所说的那样:
let user = {
name: "John",
money: 1000,
toString(){
return {
name: 'Bong'
};
}
};
alert(user);
我在控制台中收到错误消息:
未捕获的类型错误:无法将对象转换为原始值
但是,如果我这样做
alert(user.toString());
那么就没有错误了,它给出了[Object object]
请解释这种行为。
【问题讨论】:
标签: javascript object javascript-objects