| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > JavaScript: Общие вопросы > Распознать переменную типа Array |
| Автор: Stampede 3.5.2007, 18:58 |
| Собственно, сабж. Вот я получил, скажем, в параметрах некий объект. Если это массив, мне нужно обработать его каким-то особым образом. Как мне узнать, массив это или нет? Пробовал typeof, но он возвращает обычный 'object'. Думал различать по свойству length, но оно тоже есть у всех объектов. Что еще можно придумать? |
| Автор: ksnk 3.5.2007, 20:03 | ||
|
| Автор: Zeroglif 3.5.2007, 21:54 | ||||
| Stampede, самое незамысловатое:
но нужно помнить, что: 1) есть пожилые версии браузеров, не поддерживающие оператор instanceof; 2) цепь прототипов можно (исходя из задач) руками как-то "поправить", при этом найдётся массив там, где его нет:
|
| Автор: Stampede 3.5.2007, 22:22 | ||
Аккуратнее с подменой прототипов. Если уж в таком ключе, то:
Я примерно так и собирался делать, если бы ничего лучшего не нашлось. Но тут подоспел Zeroglif О, вот этого я не знал. Тем более про возможные "неожиданности" |
| Автор: GZep 3.5.2007, 22:38 |
не понял. Почему так? |
| Автор: ksnk 3.5.2007, 22:53 |
| И действительно, объект, обладающий всеми свойствами массива вполне может считаться массивом ;) |
| Автор: GZep 3.5.2007, 22:59 |
| ну так не свойство же подставили, а сам объект! почему так ведет себя javascript? |
| Автор: Zeroglif 4.5.2007, 13:24 | ||
Ну, так просто работает оператор instanceof, рыская по всей цепи прототипов.
|