バックグラウンド
長くて醜いJavascriptをリファクタリングしようとしています(恥ずべきことに、それは私自身のものです)。Javascript を学び始めたときにプロジェクトを開始しました。それは素晴らしい学習体験でしたが、私のコードには総ゴミがあり、かなり悪い慣行を採用しています。その主なものは、グローバル名前空間/オブジェクト (私の場合はwindow
オブジェクト) の深刻な汚染です。上記の汚染を軽減するための私の努力では、それを測定することが役立つと思います.
アプローチ
私の本能は、window
コードをロードする前、サードパーティのライブラリをロードした後、最後にコードが実行された後に、オブジェクトにアタッチされたオブジェクトの数を単純にカウントすることでした。次に、リファクタリングするときに、コードのロードに対応する増加を減らすようにします)。これを行うために、私は使用しています:
console.log(Object.keys(window).length)
私のコードのさまざまな場所で。これは問題なく機能しているようで、特に自分のコードがロードされた後、数が増えるのがわかります。しかし...
問題
Chrome 開発者コンソールでオブジェクトの内容を見るだけで、window
オブジェクトに添付されているすべてのものをカウントしていないことがわかります。ブラウザ、ライブラリ、または自分のコードに属しているかどうかにかかわらず、より基本的なプロパティまたはオブジェクトの種類が含まれていないと思われます。いずれにせよ、リファクタリングに役立つグローバルな名前空間の汚染を測定するためのより適切で正確な方法を誰か思いつくことができるでしょうか?
前もって感謝します!