首頁 >web前端 >js教程 >如何使用字串名稱執行 JavaScript 函數?

如何使用字串名稱執行 JavaScript 函數?

Linda Hamilton
Linda Hamilton原創
2024-12-19 10:27:16669瀏覽

How Can I Execute a JavaScript Function Using Its String Name?

使用字串表示形式執行JavaScript 函數

查詢:您有一個儲存為字串的JavaScript 函數的名稱,並打算稍後調用它。如何將此字串轉換為函數指標以隨後呼叫該函數?

答案:

  • 避免 eval: 使用更安全的替代方案,例如 window["functionName “](參數)或window"My"["functionName"](arguments).
  • 便捷函數:實作類似executeFunctionByName的函數,如下圖:
function executeFunctionByName(functionName, context /*, args */) {
  // Retrieve arguments
  var args = Array.prototype.slice.call(arguments, 2);
  // Split the namespace into parts
  var namespaces = functionName.split(".");
  // Get the function name
  var func = namespaces.pop();
  // Iterate through namespaces and get the context
  for (var i = 0; i < namespaces.length; i++) {
    context = context[namespaces[i]];
  }
  // Apply the function with the context and arguments
  return context[func].apply(context, args);
}
  • 呼叫:使用便利函數作為如下:
executeFunctionByName("My.Namespace.functionName", window, arguments);

此解決方案允許基於字串表示的動態函數執行,甚至對於命名空間內的函數也是如此。考慮提供的全面解決方案來有效處理這種情況。

以上是如何使用字串名稱執行 JavaScript 函數?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn