小编The*_*use的帖子

对象中的 toString() 方法行为

所以我正在阅读一本 Js 的书,并遇到了对象到原始转换这个美丽的话题。作者在书中说

由于历史原因,如果 toString 或 valueOf 返回一个对象,则没有错误,但该值会被忽略(就像该方法不存在一样)。那是因为在古代,JavaScript 中没有好的“错误”概念。

现在我尝试了这个,但没有像书中所说的那样:

let user = {
    name: "John",
    money: 1000,

   toString(){
       return {
           name: 'Bong'
       };
   }
  };

  alert(user);
Run Code Online (Sandbox Code Playgroud)

我在控制台中收到错误消息:

未捕获的类型错误:无法将对象转换为原始值

但是,如果我这样做

alert(user.toString()); 
Run Code Online (Sandbox Code Playgroud)

然后没有错误,它给出了[Object object]

请解释这种行为。

javascript object javascript-objects

3
推荐指数
1
解决办法
83
查看次数

标签 统计

javascript ×1

javascript-objects ×1

object ×1