const obj = { /** * Symbol.toPrimitive 属性(用作函数值)的帮助下,一个对象可被转换为原始值 * hint 'string' | 'number' | 'default' * default 对应 对象转换为 boolean */ [Symbol.toPrimitive]: function(hint) { if(hint === 'string') { return 'hello' } if(hint === 'number') { return 10 } return true } } console.log( obj + '' ) // 'true' -- hint 作为default console.log( `obj` ) // hello -- hint 作为 string console.log( +obj ) // 10 -- hint 作为 number