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, время: 18:17. |