Dlaczego „new Date (). ToString ()” działa z priorytetem operatora JavaScript?
Stany MDN że w Javscript są dwa operatory o najwyższym priorytecie:
Lewy operator asocjacyjny:foo.bar
Prawidłowo skojarzony nowy operator:new Foo()
Zwykle wyraźnie rozdzielam te dwa:(new Date()).toString()
Ale często widzę ich połączonych:new Date().toString()
Wedługta odpowiedźPowodem drugiego sposobu jest to, że jest to asocjatywność drugiego operatora, która ma znaczenie, gdy obaj operatorzy mają równy priorytet. W tym przypadku operator elementu jest pozostawiony asocjacyjny, co oznaczanew Date()
jest oceniany jako pierwszy.
Jeśli jednak tak jest, to dlaczegonew Date.toString()
zawieść? Po wszystkim,new Date
jesttylko cukier syntaktyczny dlanew Date()
. Powyższy argument mówi, że powinien działać, ale oczywiście nie.
czego mi brakuje?