MDN は、最も高い優先順位を共有する JavaScript には 2 つの演算子があると述べています。
- 左結合メンバー演算子:
foo.bar
- 右結合 new 演算子:
new Foo()
私は通常、この 2 つを明確に分けてい(new Date()).toString()
ます。new Date().toString()
この答えによると、2番目の方法が機能する理由は、両方の演算子の優先順位が等しい場合に重要になるのは2番目の演算子の結合性だからです。この場合、メンバー演算子は結合されたままになります。つまりnew Date()
、最初に評価されます。
しかし、その場合、なぜnew Date.toString()
失敗するのでしょうか? 結局のところ、new Date
はのシンタックス シュガーにすぎませんnew Date()
。上記の議論はそれがうまくいくはずだと言っていますが、明らかにそうではありません。
私は何が欠けていますか?