lucee 5.x ListEach не может получить доступ к локальной области видимости var?
Я не могу получить доступ к local
область действия в моем ListEach:
writeDump(local.woCoreID); // outputs expected values
// LOOP OVER LIST AND SEPARATE TEXT FROM INTEGERS
ListEach(local.__userSuppliedWorkoutTagList, function (item) {
writeDump(item) // outputs expected values
writeDump(local.woCoreID); // key [woCoreID] doesn't exist
});
когда я пытаюсь получить доступ к local.woCoreID, я получаю сообщение об ошибке, key [woCoreID] doesn't exist
, Почему, когда я могу сбросить его до ListEach, и я вижу значение там. Что мне здесь не хватает?
Я использую Lucee 5.x
1 ответ
Решение
Каждый function
имеет свой local
объем. Если вы хотите внешнюю область видимости, вы должны сделать ссылку на нее:
var outerLocal = local;
ListEach(local.__userSuppliedWorkoutTagList, function (item) {
writeDump(item);
writeDump(outerLocal.woCoreID);
});
или использовать обычный, посчитанный for
цикл вместо ListEach()
+ function
,