let obj = {
  valueOf: function () {
    return 5
  },
  toString: function () {
    return "Hello"
  },
}
 
console.log(obj + 2) // 7
console.log(String(obj)) // 'Hello'
var ArrayWrapper = function (nums) {
  this.nums = nums
}
 
ArrayWrapper.prototype.valueOf = function () {
  return this.nums.reduce((a, b) => a + b, 0)
}
 
ArrayWrapper.prototype.toString = function () {
  return "[" + this.nums.join(",") + "]"
  // return `[${this.nums.toString()}]`
}

Thanks