0

我有一个 JavaScript 数组,其中包含 150 个 JavaScript 函数(这些函数返回财务指标)。当我加载我的页面时,我有这个数组。我想知道是否可以在该页面上使用这些加载的功能?

我已将数组转换为字符串,下图显示了它在警报模式下的样子:

arry 警报模式 http://bsl.site40.net/pic/8cdf49ea54ee.jpg

在上图中,(函数 a,b,c)是我的函数发生的地方,有 150 个函数(字符串 {"itemCode":___},每次我使用函数时都会重复)。我认为应该有一些字符串替换,然后以某种方式在该页面上插入函数。嗯,我不知道。你能帮助我吗?我还有一个问题:javascript 数组是否可能很长(例如 20000 个字符)?

编辑:我的数组有完整的函数代码。在那张照片中,我只显示了他们的名字,以便图片可见

4

2 回答 2

2

我建议您使用 json 对象而不是数组,这样查找起来会更容易。如果您继续使用数组,则必须遍历数组才能找到正确的函数名/函数。

如果您的 json 对象包含全局声明的函数名称,您可以像这样调用它们

var functionName = "myFunc";
window[functionName]();

但是您可能不应该全局声明您的函数,而是将它们存储在某种命名空间中。

如果您的 json 对象包含实际功能(我会推荐这个),您可以调用它

var functionName = "myFunc";
myObject[functionName]();

如果您的对象包含作为字符串的函数代码,则必须对其进行评估才能执行它。您的函数需要用括号括起来,我不建议使用这种方法!您最好使用某种 jsonp 动态加载函数。

var functionName = "myFunc";
var myFunc = eval('(' + myObject[functionName] + ')');
myFunc();

一个数组最多可以包含 4,294,967,296 个元素,但是在你达到这个目标之前很久你就会抹杀你的性能,我不太确定 json 对象是否强硬。

于 2012-08-06T12:02:52.327 回答
0

如果函数存储为字符串,则可以使用函数 eval(string)。虽然不建议这样做。如果使用像这样的括号将它们存储为对象 (functionName) 就足够了。

于 2012-08-06T12:10:01.750 回答