我正在尝试实现以下伪代码:
function processAboutLink(){
}
function processServicesLink(){
}
var variableName = 'about';
process + variableName + Link();
var variableName = 'services';
process + variableName + Link();
我知道上面的代码不是真实的,而是一个逻辑表示。谁能指出我正确的方向?
我正在尝试实现以下伪代码:
function processAboutLink(){
}
function processServicesLink(){
}
var variableName = 'about';
process + variableName + Link();
var variableName = 'services';
process + variableName + Link();
我知道上面的代码不是真实的,而是一个逻辑表示。谁能指出我正确的方向?
拥有一个对象会更方便,因为您可以动态访问属性:
var processLinkFunctions = {
about: function() { ... },
services: function() { ... }
};
然后,它很简单:
processLinkFunctions[variableName]();
processLinkFunctions.about()这与if基本相同variableName === "about"。
您可能想改用对象文字进行命名空间
var process = {
services: function(){...},
about: function(){...}
}
然后打电话给他们:
process[variable]();
如果您为对象创建函数属性,则可以按名称调用它们(并且无需求助于eval!):
var functions = {
about: function() { ... },
services: function() { ... }
};
var name = 'about';
functions[name]();
编辑不要使用评估。这似乎很危险,并导致未定义的行为。
错误的答案:
eval('process' + variableName + 'Link()');
应该管用