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

这应该有效。处理方法('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 回答