首页 > 解决方案 > Javascript中的对象到原始转换:为什么不调用valueOf()方法,因为没有toString()方法

问题描述

let obj = {
  valueOf() {
    return "2";
  }
};

alert(obj);

我认为在没有toString()的情况下, valueOf()将在需要字符串时被调用。

标签: javascriptobjecttostringprimitivevalue-of

解决方案


这不会调用,因为它toString在原型链中找到,如果我们创建一个没有任何原型的对象,它将调用

let obj = Object.create(null)

obj.valueOf =
  function() {
    return "2";
  }

alert(obj);


推荐阅读