3

私は次の疑似コードを達成しようとしています:

function processAboutLink(){

}

function processServicesLink(){

}

var variableName = 'about';

process + variableName + Link();

var variableName = 'services';

process + variableName + Link();

上記のコードは実際のものではなく、論理的な表現であることは承知しています。誰かが私を正しい方向に向けることができますか?

4

4 に答える 4

8

プロパティに動的にアクセスできるため、オブジェクトがあると便利です。

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

次に、次のように簡単です。

processLinkFunctions[variableName]();

processLinkFunctions.about()これは基本的にifと同じですvariableName === "about"

于 2012-04-27T12:10:00.490 に答える
4

代わりに、名前空間にオブジェクト リテラルを使用することをお勧めします。

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

次にそれらを呼び出します:

process[variable]();
于 2012-04-27T12:10:26.213 に答える
1

オブジェクトの関数プロパティを作成すると、それらを名前で呼び出すことができます ( eval! に頼ることなく):

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

var name = 'about';
functions[name]();
于 2012-04-27T12:10:50.267 に答える
-1

EDITはevalを使用しません。危険なようで、未定義の動作につながります。

間違った答え:

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

動作するはずです

于 2012-04-27T12:10:06.010 に答える