2
    var OrderDetails = function () {
        var orderdetails = {};
            orderdetails.doSomething = function(){
               alert('do something');
            };
            return orderdetails;
    }

コードの他の場所...

    processMethod('doSomething')

    function processMethod(strMethod)
    {
        // strMethod = 'doSomething'; 
            var orderdet = OrderDetails(); //not the exact instantiation, just illustrating it is instantiated
            orderdet.strMethod(); //this is the line I'm stuck with.
    } 

私は現在、Javascript の文字列名を介してメソッドを呼び出そうとしています。この問題の潜在的な解決策として、apply、call、および eval() を調べましたが、それらのいずれも機能しないようです。私の特定のオブジェクトシナリオについて、構文に関するガイダンスはありますか?

4

2 に答える 2

8

ドット表記の代わりにブラケット表記を使用します。

orderdet[strMethod]();
于 2013-09-13T08:43:42.153 に答える
3

これはうまくいくはずです。processMethod('doSomething')

    function processMethod(strMethod)
    {
        // strMethod = 'doSomething'; 
            var orderdet = OrderDetails(); //not the exact instantiation, just illustrating it is instantiated
            orderdet[strMethod](); //this is the line I'm stuck with.
    } 
于 2013-09-13T08:44:16.973 に答える