問題タブ [dynamic-function]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
javascript - javascript で完全な関数文字列 (パラメーターを含む) を評価する方法
アクションに対応するオプションを含む選択 (ドロップダウン リスト) があります。各アクションは、select の変更イベントで呼び出される汎用 JavaScript 関数に対応しています。したがって、次のようになります。
私のサーバー コードは、各オプションの値の文字列 (アクションの動作と表示方法に応じて JavaScript 関数の呼び出し) を動的に生成し、サーバーはパラメーター (ビューへの URL) も動的に生成します。
オプションの値文字列でjavascript関数を呼び出したい、選択の変更イベントにjqueryリスナーがあります。
誰もが eval() を嫌うようです。. . しかし、これは適切なケースですか、それとも何か他のことをすべきですか? 私はこのHow to turn a String into a javascript function call?を見ました。. . . ただし、その中には、パラメーターを含む完全な関数呼び出し文字列ではなく、処理する名前しかありません。
私がこのようにしている理由は、アプリケーションの特定のタイプのビューの一般的なフレームワークを作成しており、ページごとにアクションが異なる (URL が異なる、および/または異なる JavaScript 関数を呼び出す) 可能性があるためです。 .
ありがとう!
google-chrome-extension - Chrome拡張機能:コンテンツスクリプト->動的関数
コンテンツスクリプト(Chrome拡張機能)で動的関数を呼び出したいのですが。しかし、一般的な方法は機能しません。
request.actionは何とかです。関数blah()は....そして今では...関数です!
スローされたエラー:
誰かがこれを乗り越えましたか?必要なすべてのアクションを切り替えるのは本当に好きではありません。
perl - オブジェクトのメソッドを動的に呼び出すにはどうすればよいですか?
eval
Perlでは、関数を動的に使用および呼び出すことができることを知って*{$func_name}
いますが、オブジェクトのメソッドを使用してこれをどのように行うのですか?
例えば
だから私が
それは呼び出す
javascript - Javascript: 別の関数内のパラメーターである動的に作成された関数にローカル変数を渡す
次のパラメーター化 (変更できません) を持つ関数を使用しています。
「data」(callback_function が使用する)、「results」、または「status」に追加できない追加情報を callback_function に渡す必要があります。具体的には、この情報は my_function 呼び出しが含まれる for ループのカウンターです。
これを行うには、callback_function の本体内にカウンターへの参照を含めます。
残念ながら、i の最終値 (この場合は 9) は 10 回出力されています。意図された動作は、ループ内の i の各値 (0 から 9) が出力されることです。
動的関数がスコープ外の変数にアクセスすることは可能ですが、それらが定義されているスコープ内にありますか?
function - 別の関数からの動的関数の作成
関数を引数として取るFortran90サブルーチンがあり、その関数の変更バージョンを別のサブルーチンに渡したいと思います。プログラムを次のようにしたいと思います。
'g'が関数ではなく通常の変数のみを使用する必要がある場合、私はなんとか同様のことを行うことができました。その場合、グローバル変数を使用してグローバル関数にし、「foo」でそれらのグローバル変数に割り当てました。ただし、「f」をグローバルにする方法、またはグローバル関数に割り当てる方法が見つかりません。
誰かがこれを行う方法について何かアイデアがありますか?解決策はあなたが望むようにハッキーにすることができます。
scala - Scala-基本的な動的関数パーサーの作成
私はScalaを初めて使用しますが、この言語で簡単な方程式パーサーを実装できるのではないかと思っていました。
私がいくつかの関数を持っているとしましょう(Excel関数のように):
IF(Cond a=b, val_true, val_false)
MID(String, Start_pos, num_chars)
-文字列抽出
LEN(String)
-文字列の長さ
OR(cond1, cond2, ... condn)
AND(cond1, cond2, ... condn)
したがって、アイデアは、実行時に、他のパラメータと一緒にコマンドライン引数としてユーザーからの文字列として数式を渡すことができるということです。IF(LEN(param1)=4,MID(param1,2,1), MID(param1,0,LEN(param1)))
関数を評価するという考え方なので、ユーザーが上記の式と文字列「scat」を指定すると、出力は「a」になります。文字列「scala」が指定された場合、出力は「scala」になります。
これをScalaに実装するのはどれほど簡単でしょうか?最良の設計アプローチは何ですか?関数ポインタがないことはわかっています(CIでは、数式文字列を解析して関数ポイントのコレクションにし、そこから移動します)...
効率的なScalaスタイルでこれにアプローチする方法についてのアドバイスをいただければ幸いです。
乾杯!
c++ - アセンブリでC++を使用して、実行時に新しい関数を割り当てて作成する
私は(C ++)プロジェクトに取り組んでいます。これには、完全に動的に割り当てられた関数が必要です。つまり、malloc / newとmprotectを使用してから、バッファーを手動でアセンブリコードに変更します。このため、他の_cdecl関数の複製であるために、この「バッファー」に何が必要かを正確に知りました。例えば:
この関数の複製を文字通り作成したいが、完全に動的に作成したい場合、何が必要になりますか(インラインアセンブリを備えたC ++であることを覚えておいてください)?手始めに、私はこのようなこと(または同様の解決策)をしなければならないと思います:
この後、のアセンブリコードを見つける必要がありますImAcDeclFunc(int a, int b);
。今でも私は組み立てがお粗末ですが、この関数はAT&T構文でどのようになりますか?これが私の大胆な試みです:
このコードが正しい場合(私は非常に疑わしいので、訂正してください)、このコードの値を16進数で見つけるだけでよく(たとえば、「jmp」は0xE9、「inc」は0xFE)、これらの値を直接使用します。 C ++?以前のC++コードを続行する場合:
コード/バッファー全体に対してこれを実行した後、完全に動的な_cdecl関数にはこれで十分でしょうか(つまり、関数ポインターにキャストして実行できint result = ((int (*)(int, int))ImAcDeclFunc)(firstArg, secondArg)
ますか?)。そして、私はboost :: functionやそれに類似したものを使用することに興味がありません。関数が完全に動的である必要があるため、私の興味は:)
注:この質問は私の前の質問の続きですが、はるかに詳細です。
javascript - jsコードを動的に変更するには?
実行時にJS関数のコードを置き換える方法は? (C++ 関数ポインターと同じ機能)
を試しeval()
ましたが、パラメータの 1 つに 13 や 10 などのバイト値が含まれていると、エラーがスローされます。
このことから、eval は実際にはすべての字句アトムを評価し、それらをその内容に置き換えていることがわかります。
これらは、私が探している機能を説明するためのサンプル ファイルです。
ファイル 1: index.html
ファイル 2: dynamic_code.php
ファイル 3: some_file.txt
ブラウザから返されたエラー:
python - カスタム名を使用した Python 動的関数の作成
この質問がすでに提起され、回答されている場合は、お詫び申し上げます。私がしなければならないことは概念的には非常に単純ですが、残念ながらオンラインで答えを見つけることができませんでした.
実行時にカスタム名を使用して Python (Python2.7) で動的関数を作成する必要があります。各関数の本体も実行時に構築する必要がありますが、すべての関数で (ほぼ) 同じです。
名前のリストから始めます。
func_name リストは任意の名前のリストを保持できるため、単に func1、func2、func3 などの名前にはならないことに注意してください。
結果を次のようにしたい:
これを行う必要があるのは、各関数名が外部から呼び出されるテスト ケースに対応するためです。
update : ユーザー入力はありません。はるかに大きなモジュールの両端を結びます。一方の端では、テスト ケースが何であるかを判断し、とりわけ、テスト ケースの名前のリストを設定します。もう一方の端は関数自体であり、テスト ケースの名前と 1 対 1 でマッピングする必要があります。したがって、テスト ケースの名前がわかり、各テスト ケースで何をしたいのかがわかります。必要なのは、テスト ケースの名前を持つ関数を作成することだけです。テスト ケースの名前は実行時に決定されるため、これらのテスト ケースに基づく関数の作成も実行時に行う必要があります。
update : このカスタムの名前付き関数をクラスにラップすることもできます。
関数の内容を (ほとんど同じであるため) 文字列にハードコーディングするか、以前に定義された基本クラスに基づいて作成することができます。このコンテンツを関数に入力する方法を知る必要があります。
例えば:
前もって感謝します、
マフディ