有没有一种方法可以执行以下任一操作:
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
并非开箱即用。但是,很容易以多种语言(包括JS)进行手工构建。
var operators = { '+': function(a, b) { return a + b }, '<': function(a, b) { return a < b }, // ... }; var op = '+'; alert(operators[op](10, 20));
您可以使用基于ASCII的名称(例如plus)来避免在不需要时使用字符串。但是,由于有人用字符串表示运算符并希望从中获得功能,所以提出了与此问题类似的问题的一半。
plus