这听起来像是初步问题,但我无法找到解决方法。我不想使用eval()。以下是我的代码
var inputValue = 75;
var functionName = 'Math.Sin';
alert (functionName(inputValue));
我的目的是计算functionName(inputValue)的数学值。 functionName和inputValue都存储在字符串中(当前设置ID是这样设计的,我不能改变它)。 functionName和inputValue是变量,它们的内容将根据上下文而改变。
我可以就如何计算价值得到建议吗?
答案 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);