Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   когда можно использовать for(var k in arr) (https://javascript.ru/forum/misc/1655-kogda-mozhno-ispolzovat-var-k-arr.html)

Kolyaj 29.08.2008 13:46

ZoNT, можно извратиться для фрэймов
function isArray(o) {
  return typeof o.toSource == 'function' && eval(o.toSource()) instanceof Array;
}


З.Ы. Правда toSource только в Gecko работает :)

Kolyaj 29.08.2008 13:53

А вообще, если сильно надо, то в каждом фрэйме написать
Array.prototype._itIsArray = true;

тогда
function isArray(o) {
  return !!o._itIsArray;
}

ZoNT 29.08.2008 14:04

это тоже верное решение, но только если это ты создал фрейм и это не модуль какой-нибудь сторонний...

scuter 29.08.2008 14:16

вроди такое дело может помоч,
провда не знаю на сколько грамотное это решение.
function isArray(o)
{
	if(o.length || (o instanceof Array))
	{
		return true;
	}
	else
	{
		return false;
	}
}

но всегда есть какое то но.

vandy 29.08.2008 14:18

Когда мне понадобилось определять тип данных из другого фрейма, то была изобретена функция
function getType(obj) {
   var type = typeof(obj);
   if (type == 'object') {
     if (obj) {
       if(!obj.nodeType) {
         type = (obj.window && obj == obj.window);
         if (!type) {
           type = Object.prototype.toString.apply(obj);
           type = type.substring(8,type.length-1);
         } else type = 'window';
       } else type = obj.nodeName;
     } else type = 'null';
   }
   return type.toLowerCase();
 }


Тогда это долго обсуждалось на форуме xpoint.ru.

vandy 29.08.2008 14:22

Вот нашел ссылку на обсуждение
http://xpoint.ru/forums/programming/...ad/41143.xhtml

ZoNT 29.08.2008 15:24

Хороший пример :)

vandy 29.08.2008 15:34

Плохих не держим :)


Часовой пояс GMT +3, время: 14:28.