Opera: отличить массив от объекта мимикрирующего под массив
var PreudoArray= function(){} PseudoArray.prototype= Array.prototype var list1= new PseudoArray var list2= new Array Вопрос: есть ли достаточно надёжный способ отличить первый от второго в Опере? В остальных браузерах помогает проверка вида: ({}).toString.call( list1 ) === ({}).toString.call( list2 ) |
Наполнять и смотреть меняется ли length:
var PseudoArray = function() {}; PseudoArray.prototype = Array.prototype; var list1 = new PseudoArray; var list2 = new Array; list1[0] = null; list2[0] = null; alert(list1.length == list2.length); ? |
так в опере length меняется в обоих случаях %-)
|
tenshi, у тебя какая версия оперы?
|
хотя, да, при прямом присвоении не увеличивает. а вот например через функцию push увеличивает.
в любом случае менять объект - это как-то криво |
хотя, да, при прямом присвоении не увеличивает. а вот например через функцию push увеличивает.
в любом случае менять объект - это как-то криво |
Это ещё не криво... Just use it)
|
Цитата:
|
Часовой пояс GMT +3, время: 14:00. |