方法は次のとおりです。
window
私は最近、標準の問題として、プロパティまたは再帰サブプロパティとして、を実行するために必要なすべての関数と変数を含む単一のグローバルに利用可能な (つまり、それ自体が のプロパティである) オブジェクトを維持する webapp プロジェクトに参加しました。アプリケーション — すべてのウィジェットのステートフル インジケーター、初期化エイリアス、一般的な DOM 操作メソッドなど、すべて. 簡略化した疑似コードで説明しようと思いますが、それは私の懸念事項である、これがサイクロピーンであるという点に反しています。基本的に、カプセル化されているものは何もありません。単一の粒状コンポーネントはすべて、どこからでも読み取りまたは変更できます。
私が望む方法:
私の最近の仕事では、私は上級または唯一の Javascript 開発者だったので、目立たないコード ブロックのスコープを設定し、細かいプリミティブを変数として保持するために、関数を使用するスタイルで書くことができました。スコープ。このパターンを使用すると、デフォルトですべてがその実行スコープにロックされ、API を公開する必要がある場合に、慎重に選択されたいくつかの getter/setter 関数が返されることがあります。
…一般的なレベルでは、B は A よりもパフォーマンスが高いですか?
コードをスタイル A からスタイル B への機能的同等性にリファクタリングすることは膨大な作業であるため、私の主張に対して意味のある実用的なテストを行うことはできませんが、モノリシックな神オブジェクトのアンチパターンは、スコープ付きの機能的スタイルと比較して既知のパフォーマンス モンスターです。 ? 読みやすさ、コードの安全性、関心の分離のために、私は B を主張します...しかし、すべてを常にメモリに保持し、ルックアップチェーンをクロールするなどして、何かにアクセスするための本質的にパフォーマンスが集中する演習になると思います、または少なくともガベージコレクションを非常に困難なタスクにします。