[解決済み] 変数に名前をつけたJavaScriptの関数を呼び出す【重複
2022-04-22 20:39:27
質問
私は、JavaScriptの関数名を含むJavaScript変数を持っています。この関数は、$.ajaxなどを使って読み込まれ、ページに配置されることで存在します。
どなたか、変数に指定されたjavascript関数を呼び出す方法を教えていただけませんか?
関数の名前が変数にあるのは、ページフラグメントを読み込むためのURL(現在のページに挿入される)に、呼び出す関数の名前が含まれているからです。
この解決策を実行する方法について、他の提案もお待ちしています。
どのように解決するのですか?
evalを避ける
この問題を解決するためには、JavaScriptについて以下のことを知っておく必要があります。
- 関数は第一級のオブジェクトなので、オブジェクトのプロパティになることができます(この場合、関数の名前は メソッド )、あるいは配列の要素であってもよい。
- 関数が属するオブジェクトを選択していない場合、その関数はグローバルスコープに属します。ブラウザの場合は、グローバルが存在するウィンドウというオブジェクトに関数をぶら下げることを意味します。
-
配列とオブジェクトは密接に関係しています。(噂では近親相姦の結果かもしれません!) 多くの場合、ドットを使って代用することができます。
.
角かっこではなく[]
またはその逆。
あなたの問題は、角括弧の方法ではなく、ドットの方法の参照を考慮した結果である。
というようなものではダメなのか。
window["functionName"]();
これは、あなたの関数がグローバル空間に住んでいると仮定しての話です。もし名前空間化したのなら
myNameSpace["functionName"]();
evalを使わないようにし、setTimeoutやsetIntervalに文字列を渡さないようにしましょう。私はたくさんのJSを書いていますが、evalが必要になることはありません。evalが必要になるのは、その言語を十分に深く理解していないためです。スコープ、コンテキスト、シンタックスについて学ぶ必要があります。もしevalに行き詰まったら、ただ聞けばいい。
関連
-
Vueでルートネスティングを実装する例
-
[解決済み] 配列の結合時に未定義のプロパティ 'push' を読み込むことができない
-
[解決済み] JavaScriptで "use strict "は何をするのか、その根拠は?
-
[解決済み] JavaScriptで文字列が部分文字列を含むかどうかを確認する方法は?
-
[解決済み] あるJavaScriptファイルを他のJavaScriptファイルにインクルードするにはどうすればよいですか?
-
[解決済み] JavaScriptで変数が存在するか(定義されているか/初期化されているか)をチェックする
-
[解決済み] jQuery Ajax呼び出し後のリダイレクトリクエストを管理する方法
-
[解決済み】JavaScriptの比較では、どちらの等号演算子(== vs ===)を使うべきですか?
-
[解決済み】JavaScriptの関数にデフォルトのパラメータ値を設定する
-
[解決済み】オブジェクトからプロパティを削除する(JavaScript)
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
vue3レスポンシブ対応のためのsetup+ref+reactive
-
Vueがechartsのtooltipにクリックイベントを追加するケーススタディ
-
vue+webrtc(Tencent cloud)ライブ機能の実践を実現するために
-
Vueのクラススタイルの使い方の詳細
-
Vueの「データを聴く」原則を解説
-
[解決済み】リソースの読み込みに失敗した:Bind関数でサーバーが500(Internal Server Error)のステータスで応答した【非公開
-
[解決済み】「.addEventListener is not a function」なぜこのエラーが発生するのか?
-
nodejs unhandledPromiseRejectionWarning メッセージ
-
nullのプロパティinnerHTMLを読み取れません エラーメッセージ
-
[解決済み】JavaScriptの関数名を文字列で指定して実行する方法