注意: 闭包无法调用任何用户定义的函数,因为 尽管闭包的上下文是,但函数的上下文不会被保留 保留。它会产生错误的结果。例如,当一个闭包 缓存,它可以被正确调用以供以后使用,同时是一个函数 不能。
有人请详细说明吗?为什么关闭不能调用UDF?
封闭可以调用CF内置函数吗?或只是用户定义的功能?
我认为了解这一局限性至关重要。谢谢。
答案 0 :(得分:2)
闭包可以调用CF内置函数和用户定义函数。 CF的实现没有任何限制,您可以尝试自己验证相同的内容。
存在的文档说明是因为记录了一个错误(带有预发布),缓存的闭包实例(例如在应用程序范围内)在执行两次时无法调用UDF。我认为它是固定的,因此应该删除说明。
P.S。我在ColdFusion
中处理了闭包的实现答案 1 :(得分:0)
闭包保留了创建时可见变量的副本。
这基本上是计算机科学中闭包的定义。捕获的环境和一些在该上下文中进行评估的代码。
从封闭调用函数的限制似乎是ColdFusion中闭包实现中的一个错误 - 函数无法从闭包捕获的环境访问其环境。