JavaScriptのfor…inは列挙可能プロパティを総なめする構文です。
for…in – JavaScript | MDN
for…inはforEachと異なり数え上げが不可能なオブジェクトに対しても行えます。例えばブラウザのwindowです。
これを用いてグローバル汚染を見つけるブックマークレットがあります。
javascript:(function () { var r = '', w = open('', '', 'width=600,height=700'); for (var p in window) if (!(p in w)) r += p + '<br>'; w.document.write(r); })();
グローバル汚染を見つける – Qiita
使用例はワードプレスの編集画面です。jQueryを始めとして混雑しています。
このコードは新規にまっさらなwindowを作り、それに含まれない元のwindow以下についているプロパティはグローバル領域に追加されたものと判断し、新規windowに記述していく、というものです。
JavaScriptにおいてfunctionはオブジェクトでありプロパティです。このため、ある機能的なライブラリの出力したオブジェクトについてfor…inをかけるとfunctionを探し、できることを探せます。例えば次です。テストツール’@vue/test-utils’のできることを探しました。実行可能な関数の名前が列挙されています。これだけでも説明書なしでできることがまあまあ分かります。