0

Подскажите, пожалуйста, отчего и valueOf и toString (если подставить) выдает в примере ниже один результат? Я понимаю, что сначала применяется метод valueOf и если его нет, применяется toString. Т.е. в примере ниже valueOf примениться к строке '1' не может? У каких еще объектов кроме new Date есть valueOf? Спасибо!!

var a = {
  valueOf: function() {
    return "1";
  }
};
var b = {
  valueOf: function() {
    return "2";
  }
};

alert( a + b ); // "12"
Lex
  • 459

1 Answers1

1

По спецификации valueOf возвращает т.н. примтивное значение объекта, т.е. строку в данном случае. К самой строке он не применяется

  • Да, понял, спасибо! А у каких еще объектов valueOf возвращает примитивное значение? Кроме new Date.. – Lex Jul 26 '17 at 20:13
  • Если верить спецификаци на mdn, у всех) – Vyacheslav Potseluyko Jul 26 '17 at 21:37