如何使用 JavaScript 根據儲存在字串中的函式名稱呼叫函式?


我們將使用 eval() 函式根據儲存在字串中的函式名稱來呼叫函式。eval() 函式將字串評估為 JavaScript 程式碼。這允許我們透過將包含函式名稱的字串作為引數傳遞給 eval() 函式來呼叫該函式。

示例

以下是如何使用 JavaScript 根據儲存在字串中的函式名稱呼叫函式的完整工作示例:

// Define the function that we want to call
function sayHello() {
   console.log("Hello, world!");
}

// Store the function name as a string
let functionName = "sayHello";

// Use the `eval()` function to convert the string to a function call
eval(functionName + "()");
  • 在上面的示例中,我們首先定義了一個名為 sayHello() 的簡單函式,它只是將“Hello, world!”記錄到控制檯。接下來,我們定義一個名為 functionName 的變數,它儲存字串“sayHello”,這是我們要呼叫的函式的名稱。

  • 最後,我們使用 eval() 函式將字串 functionName 轉換為函式呼叫,方法是將其與呼叫函式所需的括號 () 連線起來。

  • eval() 函式是 JavaScript 中一個功能強大但可能存在危險的功能,它允許您將字串評估為 JavaScript 程式碼。通常不建議在生產程式碼中使用 eval(),因為它可以用來執行任意程式碼,這可能存在安全風險。

替代方法

值得一提的是,還有更安全的方法可以根據儲存在字串中的函式名稱呼叫函式,而無需使用 eval,例如:

let functionName = "sayHello";
let functionObj = window[functionName];
functionObj();

或者

let functionName = "sayHello";
let functionObj = window['sayHello'];
functionObj();

這些替代方法比使用 eval 更安全,因為它們不會執行任意程式碼,而是透過其名稱直接引用函式。

更新於: 2023年2月16日

9K+ 瀏覽量

開啟您的 職業生涯

透過完成課程獲得認證

立即開始
廣告

© . All rights reserved.