Хорошо, я изучил некоторые более продвинутые аспекты Javascript и теперь пытаюсь использовать это, я застрял.
Вот мой код:
function Data(){}
function init(state){
var item;
item=new Data();
item.fieldrid=17;
item.description='foo';
state.push(item);
};
function findInState(state,fieldrid) {
for (var item in state) {
alert(item.fieldrid); //prints undefined
if (item.fieldrid == fieldrid) {
return item;
}
}
return null;
}
var s=[];
init(s);
alert(s[0].fieldrid); //prints 17 (expected)
alert(findInState(s,17).fieldrid); //exception here. function returns null.
Рабочий пример: здесь, на jsbin
Почему это не работает? Я ожидал бы, что предупреждение в findInState
даст 17, но вместо этого оно даст неопределенное значение.
Что я делаю не так?