Обернуть тело цикла for
в анонимную функцию следующим образом:
for (var field in Fields){
(function(field){
myObj.__defineGetter__(field, function() {
// do something, pointing to unique variables using "field"
// Example:
doSomethingSpecial(Fields[field].defaultValue);
});
})(field)
}
Эффект этого метода основан на том факте, что (анонимные) функции имеют собственную область видимости.Примитивные переменные (строки, числа) передаются по значению в качестве аргумента функции.В связи с этим свойство field
внутри анонимной функции отличается от свойства field
, определенного в цикле.Когда значение field
(вне функции) изменяется, field
переменная внутри функция не меняется.
Я также заменил Object
на myObj
,Если это неверно, отмените изменение.