关闭不能调用CF 10中的任何用户定义函数?为什么?

时间:2012-05-15 15:12:17

标签: coldfusion closures coldfusion-10

  

注意: 闭包无法调用任何用户定义的函数,因为   尽管闭包的上下文是,但函数的上下文不会被保留   保留。它会产生错误的结果。例如,当一个闭包   缓存,它可以被正确调用以供以后使用,同时是一个函数   不能。

引自:http://help.adobe.com/en_US/ColdFusion/10.0/Developing/WSe61e35da8d31851842acbba1353e848b35-7ffa.html

有人请详细说明吗?为什么关闭不能调用UDF?

封闭可以调用CF内置函数吗?或只是用户定义的功能?

我认为了解这一局限性至关重要。谢谢。

2 个答案:

答案 0 :(得分:2)

闭包可以调用CF内置函数和用户定义函数。 CF的实现没有任何限制,您可以尝试自己验证相同的内容。

存在的文档说明是因为记录了一个错误(带有预发布),缓存的闭包实例(例如在应用程序范围内)在执行两次时无法调用UDF。我认为它是固定的,因此应该删除说明。

P.S。我在ColdFusion

中处理了闭包的实现

答案 1 :(得分:0)

  

闭包保留了创建时可见变量的副本。

这基本上是计算机科学中闭包的定义。捕获的环境和一些在该上下文中进行评估的代码。

从封闭调用函数的限制似乎是ColdFusion中闭包实现中的一个错误 - 函数无法从闭包捕获的环境访问其环境。