JavaScript使用变量值作为对象方法的名称

时间:2015-11-03 09:39:23

标签: javascript

我有参数methodurl的功能,其中method可以等于getpost等。我可以这样做< / p>

var req = function(method, url) {
    if(method == 'get') {
        request.get(url, function(){...});
    }
    else if(method == 'post') {
        request.post(url, function(){...});
    }
}

或使用switch。但我想知道有没有办法在不使用任何条件的情况下完成它,但在调用函数期间计算变量值?

2 个答案:

答案 0 :(得分:3)

只需使用brackets

request[method](url, function(){...});

答案 1 :(得分:1)

在您的特定情况下,postget是请求对象的属性,因此您可以借助bracket notation访问它们:

if(typeof request[method] === 'function') {
    request[method](url, function(){...});
}

您也可以使用eval()函数,但不建议这样做,因为它会使您的代码容易受到注入攻击,使其更难以阅读和调试,等等。