lucee 5.x ListEach似乎无法访问本地var范围?

时间:2018-09-19 03:15:44

标签: coldfusion lucee

我似乎无法访问ListEach中的local范围:

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 个答案:

答案 0 :(得分:7)

每个function都有自己的local范围。如果要使用外部范围,则必须对其进行引用:

var outerLocal = local;

ListEach(local.__userSuppliedWorkoutTagList, function (item) {
    writeDump(item);
    writeDump(outerLocal.woCoreID);
});

或使用规则的计数的for循环,而不是ListEach() + function