2009-03-03 14 views
0

私は次のコードを持っている:これはJavaScriptで許可されていますが、ActionScriptで、それは常にこのコード行が間違っていると言って、エラーメッセージを表示していますActionScriptの関数呼び出しで関数宣言が許可されていますか?

var a= 1 + (function (x) { return x+1;} (2)); 

を。私はこのことについてActionScriptに関するドキュメントを見つけることができません。だれかがそれについて考えていますか?

ありがとうございます!

私は以下のようなアイデアを持っています: var a = 1+(function(x){return x + 1;})call(function(x){return x + 1;}、2); この例では正常に動作します。これは "call"文字列の前のものとまったく同じfuncitonを参照しています。 arguments.callerは上記の "call(..)"が発生する場所で、arguments.calleeは "call"文字列の後の関数を参照しています。 arguments.lengthは1です。En ...これは問題ありませんか?

それは、SWFタグを変更することで、解決しています^^

+0

は、私はそれは、私が今まで実際のコードでそれを見た場合、私はそれを変更したいので、ちょうどサンプルコードがありますことを期待してるの「のvar A = 4;」アヒルのようにあなたを追跡し、あなたをひどく打ち負かす:-) – paxdiablo

+0

提案していただきありがとうございます。これは、javascriptコードをactionscriptに変換するためのサンプルコードです。 –

答えて

6

代わりにこの構文を試してみてください:。

var a = 1 + (function (x) { return x+1;})(2); 
+0

または、代わりにこのコードを試してください: "var a = 4;" WTFもその怪物ですか? :-) – paxdiablo

+1

私はあなたがポイントを見逃していると思う、質問者は問題を説明するために簡単な例の機能を投稿した。私は彼が実際にこのようなコードを書いていることを本当に疑っています。私は、匿名のインライン関数がなぜ機能していないのか理解したいと思うでしょう。 –

+0

はい。ありがとうございました。私は、匿名のインライン関数をactionscriptに変換したい。上記のコードはJavaScriptで動作し、JavaScriptからActionScriptへの変換を行っています。 –

0

を "2" は、関数の引数のですか?

IAC:なぜそれを分解して関数をローカル変数に代入し、その変数を渡すのはなぜですか?理解しやすく、デバッグするのも簡単です。

乾杯

+0

ありがとうございます。上記のコードは私のテストケースで、javascriptコードをactionscriptにコンパイルするために発生します。私が壊れた場合、コード変換を強制して、現在のコード行の前に関数定義文を置く必要があります。上記のコードをローカルで作業するように変更することに関する提案はありますか? –

関連する問題