+ ({x: + null, y: + '001', toString: function () {return this.x + this.y;}})
Выперегрузка toString
, какая функция возвращает (+null+'001')
+ null приводит к нулю 0;
+ '001' приводит строку к 1
, вы возвращаете 1 из toString.
В предыдущих случаях результатом не перегруженного метода toString литерала объекта является "[object Object]"
, который приводит к числу, дает NaN.
Единственное, что здесь имеет значение, это то, чтоtoString, перегруженный или нет, возвращает.