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

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了lucee 5.x ListEach似乎无法访问本地var范围?相关的知识,希望对你有一定的参考价值。

我似乎无法访问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.

答案

每个function都有自己的local范围。如果您想要外部范围,则必须引用它:

var outerLocal = local;

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

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

以上是关于lucee 5.x ListEach似乎无法访问本地var范围?的主要内容,如果未能解决你的问题,请参考以下文章