Тема: WTF?????????
Показать сообщение отдельно
  #3 (permalink)  
Старый 12.01.2014, 11:17
Аватар для kobezzza
Быдлокодер;)
Отправить личное сообщение для kobezzza Посмотреть профиль Найти все сообщения от kobezzza
 
Регистрация: 19.11.2010
Сообщений: 4,338

В случае не тождественного сравнения объекта с примитивом, то объект приводится к примитиву и затем производится сравнение. Сначала пробуется метод valueOf, но для массива он возвращает ссылку на исходный массив, поэтому следующим используется метод toString и он как раз возвращает '10', т.е. '10' == 10 => true.

var a = [10];
a.valueOf = function () { return 1; }

alert(a == 1);
alert(a == 10);
__________________
kobezzza
code monkey

Последний раз редактировалось kobezzza, 12.01.2014 в 11:19.
Ответить с цитированием