return {}},
}

String(o)
// toString
// valueOf
// TypeError
</code></pre></div><p>ES6 之后，还允许对象通过显示指定 @@toPrimitive Symbol 来覆盖原有的行为。 [Symbol.toPrimitive]是一个内置的 Symbol 值，它是作为对象的函数值属性存在的，当一个对象转换为对应的原始值时，会调用此函数。</p> <div class="language- extra-class"><pre class="language-text"><code>var o = {
  valueOf: () =&gt; {console.log('valueOf');return {}},
  toString: () =&gt; {con