简体   繁体   中英

Variable name in function call in Javascript

I'm trying to achieve the following pseudo code:

function processAboutLink(){

}

function processServicesLink(){

}

var variableName = 'about';

process + variableName + Link();

var variableName = 'services';

process + variableName + Link();

I'm aware that the code above isn't real but is a logical representation. Can anyone point me in the right direction?

It would be more convenient to have an object, because you can access properties dynamically:

var processLinkFunctions = {
  about:    function() { ... },
  services: function() { ... }
};

Then, it's as easy as:

processLinkFunctions[variableName]();

This is basically the same as processLinkFunctions.about() if variableName === "about" .

You might want to use object literals for namespacing instead

var process = {
    services: function(){...},
    about: function(){...}
}

then calling them:

process[variable]();

If you make the functions properties of an object, you can then call them by name (and without resorting to eval !):

var functions = {
    about: function() { ... },
    services: function() { ... }
};

var name = 'about';
functions[name]();

EDIT don;t use eval. It seems to be dangerous and leads to undefined behaviour.

wrong answer:

eval('process' + variableName + 'Link()');

should work

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM