ВАЖНОЕ ОБНОВЛЕНИЕ: Этот ответ неверный, извините.Я должен был еще раз проверить, что комментарий @ ChrisG был правильным, прежде чем опубликовать его.Ответ @ estus является правильным.
Если вы вставите свой код на игровую площадку Babel, вы увидите, что вызов HelloWorld.getDerivedStateFromProps()
напрямую действительно работает, как вы и предполагали, даже при компиляции в ES5.
Оригинальный ( неправильный ) ответ:
(Обратите внимание, что этот ответ является только частично неправильным; использование this
для вызова одного статического метода из другого действительно допустимый синтаксис в обычных обстоятельствах.)
Хотя я лично не нахожу его таким понятным, как использование имени класса (HelloWorld
) в явном виде, код, который вы первоначально разместили, действителен, а MDN верен.Как отметил @ChrisG в своем комментарии, проблема в том, что он не работает в коде, переданном Бабелем на ES5.Если вы измените цель так, чтобы она переносилась на ES6, она должна работать, хотя, конечно, она не будет работать в браузерах, которые не поддерживают ES6.