在数学课上,我们学习了如何定义新的运算符。例如:
(ℝ, ∘), x ∘ y = x + 2y
这定义了∘法律。对于x和y的任何实数,x y是x + 2y。
∘
范例:2 ∘ 2 = 2 + 4 = 6。
2 ∘ 2 = 2 + 4 = 6
可以在JavaScript中定义这样的运算符吗?我知道函数可以胜任:
function foo (x, y) { return x + 2 * y; }
但我想使用以下语法:
var y = 2 ∘ 2; // returns 6
代替这个:
var y = foo(2, 2);
哪个是最接近这个问题的解决方案?
最简洁的答案是不。ECMAScript(标准JS所基于的)不支持运算符重载。
可以使用sweet.js之类的第三方工具来添加自定义运算符,尽管这需要额外的编译步骤。