【JavaScript】for…inであるオブジェクトにできることを探す

著者:杉浦

【JavaScript】for…inであるオブジェクトにできることを探す

 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’のできることを探しました。実行可能な関数の名前が列挙されています。これだけでも説明書なしでできることがまあまあ分かります。

  • この記事いいね! (0)

著者について

杉浦 administrator