是否有可能做这样的事情,而不使用eval?添加功能,JSON不使用eval
foo1 = {"x": 4};
foo2 = {"x": "someFunc(foo1.x)"};
someFunc(var1)
{
return (var1 + 1);
}
alert(foo1.x); // 4
alert(foo2.x); // 5 (hopefully)
其实这是两个问题。首先是去执行一个功能,第二个是没有括号这样做,是因为在一个循环我不知道这是否是foo2.x或foo2.x()做的。
我能想到的最好的事情是搜索的JSON对象用于表示函数的关键字,并使用一个开关列表与值来执行它们并替换关键字。
的缺点是,我需要更新JSON对象,每次有新的变化。
为什么不把它包又一想函数内'{“x”:功能on(){someFunc(foo1.x); }}' – 2013-03-06 15:40:52
@Салман - 这是无效的JSON。 – Quentin 2013-03-06 15:41:31
它需要是JSON还是只是一个JavaScript对象? – 2013-03-06 15:41:58