我在Javascript 中动态创建函数。有时我需要检查某个功能是否已经实际创建。
我将函数的名称作为字符串。如何根据字符串中的给定值检查函数是否存在?
答案 0 :(得分:65)
您可以使用;
检查它是否在全局范围内定义if (typeof window[strOfFunction] === "function") {
// celebrate
//window[strOfFunction](); //To call the function dynamically!
}
答案 1 :(得分:6)
您可以使用eval:
if ( eval("typeof stringFunction === 'function'") ){ /*whatever*/ }
答案 2 :(得分:0)
我们加2美分是因为接受的答案是正确的,但是可以从一些澄清中受益:
window["myFunctionNameHere"]
是解决问题的一种简单方法,但基本上将window
视为在所需范围内可访问的任何全局对象。
此外,当然,您必须确保在这样的范围内正确地正确分配该功能。
例如,对于窗口,您首先需要
<script>
$(document).ready(function () {
window.myFunctionNameHere = function() {
console.log('Hello world');
}
});
</script>
之后,
typeof window["myFunctionNameHere"] === "function"
将按预期工作。