末尾に追記アリ 自分の中では GreaseMoneky や Opera の User JavaScript を書くときに (function(){ // 処理を普通に書く })(); とクロージャで書いてスコープを切ることが常識だと思っていた。 野良スクリプトでこういう風に書いてないと「勉強不足なのねー」とか 思っちゃってたわけだけども、よく調べたみたら 自分が勉強不足だったことが判明したのでまとめてみる。 なぜ必要か(と思っていたか) ユーザスクリプト内でグローバル変数を書いた場合に 対象サイトのスクリプトのグローバル変数と衝突する可能性があるため。 例えば、対象サイトで config という変数を使っているときに ユーザスクリプトでそれを知らずに config という変数を宣言したりすると 意図しない動作をする場合がある。 というかそれでハマった↓ Googleにブログ検索とコード検索