1

注:クロージャのコンテキストは保持されますが、関数のコンテキストは保持されないため、クロージャはユーザー定義関数を呼び出すことはできません。誤った結果になります。たとえば、クロージャがキャッシュされると、後で使用するために適切に呼び出すことができますが、関数はできません。

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

誰かがこれについて詳しく説明してくれませんか?なぜクロージャーはUDFを呼び出せないのですか?

クロージャはCF組み込み関数を呼び出すことができますか?または単にユーザー定義関数?

これの限界を理解することは重要だと思います。ありがとうございました。

4

2 に答える 2

2

クロージャーは、CF 組み込み関数とユーザー定義関数の両方を呼び出すことができます。CF の実装にはまったく制限がなく、同じことを自分で確認することができます。

ドキュメント ノートが存在するのは、キャッシュされたクロージャ インスタンス (たとえば、アプリケーション スコープ内) が 2 回実行されたときに UDF を呼び出すことができなかったという (プレリリースで) ログに記録されたバグのためです。修正されたと思いますので、メモを削除する必要があります。

ps ColdFusion でのクロージャの実装に取り​​組みました

于 2012-05-15T20:53:00.467 に答える
0

クロージャーは、その作成時に表示される変数のコピーを保持します。

これは基本的に、コンピューター サイエンスにおけるクロージャーの定義です。キャプチャされた環境と、そのコンテキストで評価するコード。

クロージャーから関数を呼び出す際の制限は、ColdFusion でのクロージャーの実装におけるバグのようです。関数は、クロージャーによってキャプチャされた環境から、その環境にアクセスできません。

于 2012-05-15T15:17:11.513 に答える