Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > JavaScript: Общие вопросы > Орератор for in


Автор: GIK 13.7.2005, 12:12
Привет всем.
Вот прочитал тут в книженции (книга так себе - "Самоучитель JS") про оператор for....in
и ничего не понял.
Вот что там написанно:
Оператор for...in используется для анализа свойств объекта.
Синтаксис оператора: for (i in t) {s}, где i - переменная цикла; t - объект; s - последовательность операторов
. И далее
В результате выполнения оператора цикла производится перебор свойств объекта. Переменная цикла при каждом повторении содержит значение свойства объекта. Кол-во повторений тела цикла "s" равно числу свойств, определенных для объекта "t"
И еще приведен пример
Код

function propobj (obj)
{ var result = ""
   for (var i  in  obj)
     {result +=obj.data.value+"."+i+"="+(obj.data)[i]+"\r\n"}
   result +="\n\r"
   form1.data.value=result
}

Что сдесь есть переменная i, какое значение она в себе несет, и вообще что есть что?
Подскажите кто нибуть.

Автор: DEER 13.7.2005, 12:25
а в твоём примере, i - это свойства объекта obj.
то есть пусть есть структура
Код

 structure obj
{
 int a, b, d;
}

тогда i будет последовательно принимать значения a потом b потом d

По моему так

Автор: Aliance 13.7.2005, 13:10
Оператор for/in перебирает все свойства заданного объекта и сообщает их нам.
Грубо говоря, мы имеем ссылку на объект (elem), тогда все его style просматриваются таким кодом:
Код

function qwer() {
var stile = "<B>Стили:</B><BR><BR>";
var elem = document.getElementById("qwe2");
for (var propname in elem.style) {
  stile += propname +": <b>" + elem.style[propname] + "</b><BR>"
}
elem.innerHTML = stile;

}

Код

<div id="qwe2" style="align: center; border: 1px red solid; margin: 5px; padding: 15px;"></div>


Примеры:
http://forum.vingrad.ru/index.php?showtopic=24814
http://forum.vingrad.ru/index.php?showtopic=44858

Автор: GIK 13.7.2005, 13:19
Спасибо.
Буду разбирать.

Автор: Иль 13.7.2005, 19:48
Да, и еще обрати внимание, в цикле у тебя в i вкладываются имена свойств объекта, короче строки там, строки имен всех его перечисляемых свойств. Короче в цикле у тебя пересислятся имена всех свойств, методов, имена вложенных объектов, имена событий для нод.
Добавлено @ 19:49
GIK, смотрю ты серьезно взялся, за JS smile

Автор: Aliance 13.7.2005, 20:07
Цитата
Короче в цикле у тебя пересислятся имена всех свойств, методов, имена вложенных объектов, имена событий для нод.

Не совсем всех.

Автор: Sardar 13.7.2005, 20:12
Цитата
Короче в цикле у тебя пересислятся имена всех свойств, методов, имена вложенных объектов, имена событий для нод.

Не совсем, ИЕ не перечисляет методы у стандартных обьектов.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)