变量运算符可能吗?有没有办法做类似于以下任何一种情况:var1 = 10; var2 = 20;var operator = "<";console.log(var1 operator var2); // returns true- 要么 -var1 = 10; var2 = 20;var operator = "+";total = var1 operator var2; // total === 30
3 回答
慕的地10843
TA贡献1785条经验 获得超8个赞
没有开箱即用。但是,很容易用包括JS在内的多种语言手工构建。
var operators = { '+': function(a, b) { return a + b }, '<': function(a, b) { return a < b }, // ... };var op = '+';alert(operators[op](10, 20));
您可以使用基于ascii的名称plus
,以避免在不需要时通过字符串。然而,有一半类似于这个问题的问题被问到,因为有人用字符串表示运算符和想要的函数。
慕容708150
TA贡献1831条经验 获得超4个赞
你可以使用这个eval()
功能,但这不是一个好主意。我认为更好的方法是为您的运营商编写函数,如下所示:
var addition = function(first, second) { return first+second;};var subtraction = function(first, second) { return first-second;};var operator = addition;alert(operator(12, 13));var operator = subtraction;alert(operator(12, 13));
添加回答
举报
0/150
提交
取消