Object.values(объект)

Jun 26, 2012 10:51


Вот кто мне может сказать: почему в ECMAScript 5th Edition есть реализованный в JavaScript 1.8.5 метод Object.keys(объект), возвращающий массив ключей объекта, а метода Object.values(объект), возвращающего массив значений,- нет?

Захотелось тут лаконично, в одну строчку, записать вывод функции, возвращающей цвет в RGB-нотации в виде объекта с тремя полями,- а нужна строка вида rgb(R, G, B). Надо склеить значения методом join, но к объекту он неприменим, значит нужно получить массив…

Конечно, нетрудно доопределить Object.values(), а в данном конкретном случае я в конце концов подправил функцию, чтобы она возвращала объект со своим методом toString, так что при необходимости он автоматически преобразуется в правильную строку. Но всё равно странно. Меня охватили моральные муки: может, я что-нибудь не так делаю, если мне требуется метод, отсутствующий в стандарте,- ведь он так напрашивается, что для отказа от него должны же быть какие-то веские причины?

Кстати, ещё я не понимаю: если можно так использовать метод toString, то почему метод toNumber существует, но не работает так же. Если из объекта в каких-то контекстах нужно получать число, изволь определить метод valueOf.

javascript, стандарты, Web-программирование

Previous post Next post
Up