Javascript 中怎样用变量调用函数(想PHP中那样)

在PHP中可以用变量调用函数,比如:


今天在测试Javascript程序的时候,想起来JS中能不能也像PHP中那样用变量来调用函数呢?

function say(w){
alert(w);
}
var f = 'say';
f('hello');

这样做显然是行不通的,程序提示f函数不存在。

后来想到了可以借用eval函数来实现,修改程序:

function say(w){
alert(w);
}
var f = 'say';
eval(f)('hello');
//或者:eval(f+'("hello")');

这次程序按照预期的运行了, 其实这都是eval函数的功劳,到这里应该想起PHP中也有eval函数,他们的作用类似,都可以在自己的环境中把字符串当作代码运行出来,所以就有了上面的效果。
最后再放出网上找到的一个例子代码,但是这个例子和我要表达的不是一个意思,可得看仔细了。

function say(w){
alert(w);
}
(function a(b){
b('hello');
})(say);

发表评论

电子邮件地址不会被公开。 必填项已用*标注