Может кто-нибудь, пожалуйста, объясните мне, как изменить template.portNumber значение?Значение внутри петли не изменяется
var template = {
portNumber: null,
stuff: ""
}
myfunc(template, 3);
function myfunc(template, count) {
var ports = {}
for (var i = 0; i < count; i++) {
var portNumber = i + 1;
ports[portNumber.toString()] = template;
ports[portNumber.toString()].portNumber = portNumber;
}
console.debug(JSON.stringify(ports, null, 4));
return ports;
}
Результат:
"{
"1": {
"portNumber": 3,
"stuff": ""
},
"2": {
"portNumber": 3,
"stuff": ""
},
"3": {
"portNumber": 3,
"stuff": ""
}
}"
Ожидаемое:
"{
"1": {
"portNumber": 1,
"stuff": ""
},
"2": {
"portNumber": 2,
"stuff": ""
},
"3": {
"portNumber": 3,
"stuff": ""
}
}"
Извините за глупый вопрос, но я действительно застрял с ним. Такой же код хорошо работает в python. Спасибо.
Ваш вопрос уже ответил здесь: http://stackoverflow.com/a/750506/222163 (читай вокруг закрытия в JS) –
@ PaulD'Ambra Это не проблема закрытия. – JJJ
А, нечеткий утренний мозг ... ты совершенно прав @Juhana –