簡體   English   中英

檢查函數名稱是否存在於字符串中?

[英]check if a function exists with its name in a string?

我在 Javascript 中動態創建函數。 有時我需要檢查某個函數是否實際上已經創建。

我有一個字符串形式的函數名稱。 如何根據字符串中的給定值檢查函數是否存在?

您可以使用以下方法檢查它是否在全局范圍內定義;

if (typeof window[strOfFunction] === "function") {
    // celebrate
    //window[strOfFunction](); //To call the function dynamically!
}

您可以使用評估:

if ( eval("typeof stringFunction === 'function'") ){ /*whatever*/ }

我們增加了 2 美分,因為接受的答案是正確的,但從一些澄清中受益:

window["myFunctionNameHere"]是解決問題的一種簡單方法,但基本上將window視為在所需范圍內可訪問的任何全局對象。 此外,當然,您必須確保在這樣的范圍內正確分配函數。

例如,在窗口的情況下,您首先需要

<script>
    $(document).ready(function () {
        window.myFunctionNameHere = function() {
            console.log('Hello world');
        }
    });
</script>

在此之后,

typeof window["myFunctionNameHere"] === "function"

將按預期工作。

暫無
暫無

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

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