我有参数method
和url
的功能,其中method
可以等于get
,post
等。我可以这样做< / p>
var req = function(method, url) {
if(method == 'get') {
request.get(url, function(){...});
}
else if(method == 'post') {
request.post(url, function(){...});
}
}
或使用switch
。但我想知道有没有办法在不使用任何条件的情况下完成它,但在调用函数期间计算变量值?
答案 0 :(得分:3)
只需使用brackets:
request[method](url, function(){...});
答案 1 :(得分:1)
在您的特定情况下,post
和get
是请求对象的属性,因此您可以借助bracket notation访问它们:
if(typeof request[method] === 'function') {
request[method](url, function(){...});
}
您也可以使用eval()
函数,但不建议这样做,因为它会使您的代码容易受到注入攻击,使其更难以阅读和调试,等等。