我正在尝试实现以下伪代码:
function processAboutLink(){
}
function processServicesLink(){
}
var variableName = 'about';
process + variableName + Link();
var variableName = 'services';
process + variableName + Link();
我知道上面的代码不是真实的,但却是一种逻辑表示。有人能指出我正确的方向吗?
答案 0 :(得分:8)
拥有一个对象会更方便,因为你可以动态访问属性:
var processLinkFunctions = {
about: function() { ... },
services: function() { ... }
};
然后,它就像:
一样简单processLinkFunctions[variableName]();
如果processLinkFunctions.about()
,则与variableName === "about"
基本相同。
答案 1 :(得分:4)
您可能希望将对象文字用于命名空间
var process = {
services: function(){...},
about: function(){...}
}
然后打电话给他们:
process[variable]();
答案 2 :(得分:1)
如果你创建了一个对象的函数属性,你可以按名称调用它们(而不是诉诸eval
!):
var functions = {
about: function() { ... },
services: function() { ... }
};
var name = 'about';
functions[name]();
答案 3 :(得分:-1)
错误答案:
eval('process' + variableName + 'Link()');
应该有效