私は次のような無名関数を区別しようとしています:
function() { trace("WOO"); }
他のものから(「名前付き」?)
var _FUNC:Dynamic = function() { trace("WOO"); }
私がそれをやりたい理由は、2つの異なる関数であるため、2つの匿名関数を比較できないためです。
わかりやすくするために、次の簡単な例を検討してください。
var _TEST:Dynamic = function(a:Dynamic):String {
var _TESTA:Dynamic = function() { trace("WOO"); };
var _TESTB:Dynamic = _FUNC;
return (a == _TESTA) + ", " + (a == _TESTB);
}
走れば_TEST(_FUNC);
戻ってき"false, true"
ます。それらは同じ機能ですが、同じオブジェクトではありません。
同じタスクを実行する場合に機能が同じになるようにそれらを比較する方法はありますか?
関数をシリアル化する方法はありますか?シリアル化された表現を比較して、それらが同じ「コード」を共有しているかどうかを確認できるようにするためです。