簡體   English   中英

如何在 JavaScript 中使用變量而不是函數名

[英]How to use variable instead of function name in JavaScript

我想知道是否有一種方法可以使用變量名而不是函數。 那是,

function dialog(a,b) {
    a(b);
}

示例:如果用戶將'alert'傳遞給a並將內容傳遞給b 然后它應該提醒b

如果a'confirm' ,那么它應該確認b

我可以使用 switch case 或 if else,但我想知道上述情況是否可行。

我認為您正在尋找eval()方法,但是如果您不小心,它可能會導致不安全感

如果在您的示例中,用戶將原始函數作為a傳入,則您可以讓用戶自己向他們提供函數,但我假設您希望他們傳遞一個字符串,該字符串命名了要使用的函數。

function(a, b) {
  eval(a + '(' + b + ')');
}

使用.call()

function callme(a,b){
  return a.call(null, b);
};

var func = function(c) {
  return c;
};

alert(callme(func, "test"));

您傳遞給callme任何函數都將在那里執行。 第一個參數是上下文,因此您可以根據需要傳遞this 否則傳遞null

在您的情況下,可以通過警報/確認。 如果您不需要返回某些東西,只需在最后做一個空返回即可。

不要使用eval ,因為熱愛一切美好的事物。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM