JavaScript中String的变量和函数

时间:2014-02-04 08:55:51

标签: javascript arrays

例如,我们有一个变量和一个名为fooplus的函数:

var foo = 2;

var plus = function(a,b){return a+b;}

我们有一个字符串:

var s = '1 plus foo';

现在我希望这个字符串s 转换到一个数组:

var array = [1, plus, foo]);

请注意,不是[1, 'plus', 'foo'] 哪种转换相当容易,我知道。

因此,我的问题将是

如何从字符串中获取值(函数)本身?

还请注意,使用eval来解决此问题是无效的,因为的目的不是评估,而是从字符串构建数组

感谢。


编辑:

因为我使用node.js

全局对象为global 和 它似乎 global.foovar foo不同。

我觉得在这个问题之前这就是我在这里问的原因。

[1, global['plus'], global['foo']]应该是无效答案。

2 个答案:

答案 0 :(得分:0)

如果您执行 s.split(' ');,您可以使用数组中的字符串来调用所请求的函数:

window['plus']() // Call your functions like this.

或者将它们设置在一个数组中:

var array = [1, window['plus'], window['foo']];

然后,您将在array中存储函数引用。

答案 1 :(得分:0)

我的回答:

var G = {};

var foo = G.foo = 2;

var plus = G.plus = function(a,b){return a+b;}

我们有一个字符串:

var s = '1 plus foo';

现在我希望这个字符串s 转换到一个数组:

var array = [1, G['plus'], G['foo']];

通过这种方式,我们可以避免全局变量并保持var foo格式,同时允许使用G object + ['string']访问该值。