gpt4 book ai didi

javascript - 如何从字符串调用函数?

转载 作者:行者123 更新时间:2023-12-04 17:04:41 25 4
gpt4 key购买 nike

您将如何从字符串调用函数,可能包括作用域,并且不使用 eval .

这个想法是我想在一个 dragEndCallback 中指定一个回调属性,并调用它,将拖动开始和结束对象作为参数。就我而言,某种通用的拖放操作。

大多数人会告诉您使用 eval,但它不安全、速度慢,而且总体上是一个非常糟糕的主意。

以下是我想支持的一些示例字符串:

"NamespaceA.functionName"
"functionName"
"NamespaceB.NamespaceA.functionName"
"ClassB.methodName"

最佳答案

这是一个通用的、干净的、方便的方法来做到这一点。如果未找到该函数,则返回 undefined。

window.getFunctionFromString = function(string)
{
var scope = window;
var scopeSplit = string.split('.');
for (i = 0; i < scopeSplit.length - 1; i++)
{
scope = scope[scopeSplit[i]];

if (scope == undefined) return;
}

return scope[scopeSplit[scopeSplit.length - 1]];
}

关于javascript - 如何从字符串调用函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12711695/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com