Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   for..in обращение к свойствам (https://javascript.ru/forum/misc/50842-obrashhenie-k-svojjstvam.html)

xtfkpi 14.10.2014 01:37

for..in обращение к свойствам
 
доброго дня, уважаемые знатоки.
подскажите пожалуйста, в чем разница при использовании цикла for..in в обращении к свойствам
в примере на странице http://javascript.ru/for..in
указано два варианта обращения к свойствам объекта: p и a[p]
var a = {
  p1: 1,
  p2: 2
}
for(var p in a) {
alert(p) // p1, затем p2
// к значению каждого свойства прибавить 1
  a[p] = a[p] + 1
}

MallSerg 14.10.2014 02:02

for(var p in a) - Что по твоему делает эта строчка ?
т.е. нужно что бы ты очень подробно разобрал и поняль
т.е. какие переменные где и для чего создаются что в них хранится ... и.т.д

«указано два варианта обращения к свойствам объекта: p и a[p] » это мнение неправильное

kostyanet 14.10.2014 21:20

Потому что там как обычно, понапишут, литераторы-итераторы

for (property in object)

Никакая это не проперть, это key.

То есть сначала задурили моск, потом начали объяснять как правильно. Сразу правильно написать нация не позволяет. :)

kostyanet 14.10.2014 21:23

Ну вот же, православно

for (variable in object) {...
}

https://developer.mozilla.org/en-US/...ments/for...in

Бяда-бяда у нас с русским, скоро на нем и писать нечего будет.

kostyanet 14.10.2014 21:30

И вообще for... in это частный случай, общий случай - in

if(key in object)
 console.log(object[key]);


Квадратные скобки нужны когда идентификатор (key - ключ которым открывается квартира где деньги лежат) заранее неизвестен, или имеет не благообразный вид.

Нельзя напечатать object.key потому что key будет считаться скаляром - текстом object['key'], в то время как key - переменная в которой например 'Квартира №25' о которой еще ничего не известно.

Поэтому object[key] после вычисления значения ключа теоретически может выглядеть так object.Квартира №25. Но так не бывает снаружи, а что там внутри в дереве творится - нас не колебет.


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