我希望一个对象在数字上下文中返回一个值,而在字符串上下文中返回一个完全不同的值。以下不起作用。
foo = {
toString: function() { return "string" },
valueOf: function() { return 123 }
}
console.log(foo * 2) // got 246, fine
console.log("hi " + foo) // got "hi 123", want "hi string"