实现string中的函数

时间:2014-03-12 05:26:37

标签: javascript string function

这听起来像是初步问题,但我无法找到解决方法。我不想使用eval()。以下是我的代码

        var inputValue = 75;        
        var functionName = 'Math.Sin';          
        alert (functionName(inputValue));

我的目的是计算functionName(inputValue)的数学值。 functionName和inputValue都存储在字符串中(当前设置ID是这样设计的,我不能改变它)。 functionName和inputValue是变量,它们的内容将根据上下文而改变。

我可以就如何计算价值得到建议吗?

1 个答案:

答案 0 :(得分:5)

您可以在对象中存储要作为键值对调用的实际函数,例如

var functions = {
    "Math.Sin"   : Math.sin,
    "Math.CoSine": Math.cos,
    "Math.Tan"   : Math.tan
};

var inputValue = 75;        
var functionName = 'Math.Sin';          
alert (functions[functionName](inputValue));
# -0.38778163540943045

如果inputValue以度为单位,那么您可以将其转换为像这样的弧度

function convertToRadian(degree) {
    return degree * Math.PI / 180.0;
}

inputValue = convertToRadian(inputValue);