数学の授業では、新しい演算子を定義する方法を学びました。たとえば、次のようになります。
(ℝ, ∘), x ∘ y = x + 2y
これは∘
法則を定義する。任意の実数に対してバツそしてええ、x ∘ yはx + 2y。
例: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);
この質問に最も近い解決策はどれでしょうか?
ベストアンサー1
簡単に答えると、いいえです。ECMAScript (JS のベースとなる標準) は演算子のオーバーロードをサポートしていません。
余談ですが、ECMAScript 7では、カスタム設計時に標準演算子のサブセットをオーバーロードできるようになります。
値型
。 がここにあります
言語作成者であり Mozilla CTO の Brendan Eich によるスライド デッキ
主題について。ただし、これにより任意の演算子は許可されず、オーバーロードされた意味は値型にのみ適用されます。
<- 笑、結局それは起こりませんでした。
サードパーティのツールを使用することもできます。甘い.jsただし、カスタム演算子を追加するには、追加のコンパイル手順が必要になります。
私はJavaScript 外部からのソリューションで回答エスプリマを使う - これは変化JavaScript とそれを拡張したもので、ネイティブではありません。