JavaScript: преобразование в integer

Читая исходники плагина autocomplete для jQuery (документация описывает не всю функциональность плагина), нашёл замечательный небольшой паттерн. Обычный короткий способ преобразовать объект другого типа в число — прибавить к нему ноль или умножить на 1. Но есть способ лучше, оцените:

var extraParams = {
    timestamp: +new Date()
}

Просто добавляем знак перед объектом. Просто и изящно.

Комментарии 14

Alisey (alisey.myopenid.com) № 1
Пару недель назад то же самое открыл для себя в исходниках Джона Резига :)
Если что — он гений.
jahson.livejournal.com № 5
Только недавно нашёл? )
var a = new Date;
a.toSource();

и, внимание, источник всего прельстивого в выражении +new Date — a.valueOf(), который яваскрипт применяет автоматически, когда нужно преобразовать объект в «примитивный» тип данных. Примитивными, насколько я помню, являются null, undefined, числа, строки и булевы значения.
Евгений Степанищев (bolknote.ru) автор № 7
Комментарий для jahson.livejournal.com:

Сегодня нашёл.

Не понял, вот это всё — a.toSource это всё к чему? :)
jahson.livejournal.com № 8
Комментарий для Евгения Степанищева:

Чтобы увидеть что-то подобное «(new Date(1227879130813))» :)
dionys.myopenid.com № 9
Такой способ часто используется в Perl, Джон Резиг — не первооткрыватель.
Евгений Степанищев (bolknote.ru) автор № 10
Сколько программировал в Perl, а такого способа не применял. Открывать тут особо нечего, синтаксис позволяет, значит можно делать. Для меня это просто полезный паттерн.
Азат Разетдинов (razetdinov.ya.ru) № 11
Комментарий для Евгения Степанищева:

Number() и new Number() — разные вещи.
Азат Разетдинов (razetdinov.ya.ru) № 13
Во избежание заблуждений: в примере Болка timestamp не является правильным unix time, т. к. содержит количество миллисекунд, а не секунд.