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