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,

Другие вопросы по тегам