質問: 以下のコードは文法的に正しいでしょうか? chromeで実行するとしっかり実行できますが、monacaで実行するとエラーになるので調べてみましたが、以下の文法がそもそも正しいのかがわかりませんでした。 というより、ググった限りでは正しくなさそうでした。 よろしくお願いいたします。 ``` ```
回答: `static`でプロパティ(メソッドではなく)を宣言する構文は、将来的にJavaScriptに追加される予定の構文です(static public fields)。ですから、**現時点では正しい構文ではありませんが、将来的には正しい構文になります**。 Chromeではこの新構文を先取りして利用可能にしているためすでに動作しますが、他のブラウザはまだ未対応のため動作しません(参考:compat table)。 実際に確かめてはいませんが、monacaで実行した場合はWebViewがChrome相当の場合のみ動作するため、**新しいAndroidなら動作するが古いAndroidやiOSでは動作しない**という挙動になると思われます。 これらの環境でも`static`プロパティ構文が動作するようにするためには、Babelなどを用いたトランスパイルが必要です。トランスパイルの方法についてはmonacaのドキュメント等を調べると良いと思います。