サンプルコードの即時関数は、ブロックスコープで十分ではないでしょうか?

developer network内の記事は、webpackを使う場合を除いて、グローバル汚染対策で即時関数で括られています。

https://cybozu.dev/ja/kintone/docs/guideline/coding-guideline/

|

(() => {
  // 悪い例
  globalVariable = 1; // グローバル変数として変数を定義している
  // 良い例
  const localVariable = 1; // 即時関数内のローカル変数として変数を定義する
})();

|

これは勿論正しく動きますが、
IE対応が不要になった今の時代では、ES6のブロックスコープを使って
こう書くだけで十分かと思ったのですが、いかがでしょうか?

 

{
  // 悪い例
  globalVariable = 1; // グローバル変数として変数を定義している
  // 悪い例2
  var varVariable = 1; // varで定義した場合はブロックスコープが効かない 
  // 良い例
  const localVariable = 1; // ブロックスコープ内のローカル変数として変数を定義する
}

varで定義した場合に関してはブロックスコープが効かないので、
それを想定する場合は即時関数にしなければいけないと思います。

しかし、もはやvar自体が推奨されないので、
即時関数も不要かと思いました。

(たとえばchangeハンドラ内でasync-awaitを使いたい場合などは
async即時関数は役に立ちますが、また別の話です)

1 Like

AKAZA Hisaki 様

お世話になっております。cybozu developer network 事務局です。

フィードバックをありがとうございます。内容を確認し検討させていただきます。

今後とも cybozu developer network をよろしくお願いいたします。

このトピックはベストアンサーに選ばれた返信から 3 日が経過したので自動的にクローズされました。新たに返信することはできません。