Оказывается, как просто можно в js проверить, является ли что-то массивом:
function isArray(o) {
return Object.prototype.toString.call(o) === '[object Array]';
}
Кстати, в jQuery (начиная с 1.3), это проверяется именно этим способом.
Мне как-то всегда хватало o instanceof Array
, но оказалось что у этого способа есть проблемы с фреймами. И еще, после замены instanceof Array
на isArray
у меня перестала течь память в IE6 в ZForms (вернее, в том случае, если ZForms использует родной Common.js).
3 комментария:
А я больше скажу: во многих областях жизнедеятельности "Simple is good".
- Программный код, интерфейс ("Simplicity is the best strategy" Douglas Crockford)
- Еда (Предпочитаю простую еду, например, фрукты, овощи, свежевыжатый сок, сухое вино, рис, мясо. А вот всякие навороченные блюда, вроде сложных салатов с майонезом, меня не вставляют совершенно.)
- Одежда (Тяготею к простой одежде, без выебонов.)
Конечно, не везде эта концепция находит себе место. Скажем, в искусстве ей не место, я считаю.
instanceOf течёт при проверке window, document и element.
Ага, точно, на них и текло. Спасибо за ссылку :)
Отправить комментарий