Coldfusion lucee 5.x Listach不';似乎无法访问本地var范围?
我似乎无法访问我的ListAch中的Coldfusion lucee 5.x Listach不';似乎无法访问本地var范围?,coldfusion,lucee,Coldfusion,Lucee,我似乎无法访问我的ListAch中的本地范围: writeDump(local.woCoreID); // outputs expected values // LOOP OVER LIST AND SEPARATE TEXT FROM INTEGERS ListEach(local.__userSuppliedWorkoutTagList, function (item) { writeDump(item) // outputs expected values writeD
本地
范围:
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时,会收到一条错误消息,键[woCoreID]不存在
。为什么我可以在ListEach之前转储它,并且我看到值在那里。我错过了什么
我使用的是Lucee 5.x,每个
函数都有自己的本地范围。如果您想访问外部范围,则必须对其进行引用:
var outerLocal = local;
ListEach(local.__userSuppliedWorkoutTagList, function (item) {
writeDump(item);
writeDump(outerLocal.woCoreID);
});
或者对
循环使用常规计数的,而不是listach()
+函数
此循环。但我还要提醒的是,这也使得ListEach()
中的匿名函数依赖于外部作用域(可以在函数外部轻松更改,并给出意外的输出)。就我个人而言,我尽量使我的功能保持独立。如果我在函数中需要它,那么我显式地将它发送到那里。我继续使用经过验证的FOR
循环,它解决了这个问题。直到最近我才意识到Listach,所以我想试试。很明显,我需要多读一读。