$のイディオム [ javascript ]

jQueryが便利だなーと思い始めた頃のある日、どこかのサイトで、

jQuery(function($){....})
と書いておけば、$を確実に使える

というのを見たことがある。

表面上の意味はわかるが意義が分からん(つまり良くわかってない)のでそのまま流したてたんだけど、その後、

var $ = function (id) {return document.getElementById(id)}
:
:
:
$("hogehoge").innerHTML = .....;

なんて使い方をしてあるコードを幾つか立て続けに見かけた。

こんなふうに$を使ってあると、ちょっとパクってjQueryと一緒に使おうとすると名前が衝突してメンドクさい。

なるほど$をこういう使い方をするコードと共存するためにはjQueryを使う部分を閉じた名前空間にして$を明示的に定義してしまえばいい、というテクニックだったのか、とかなり遅まきながら納得。

ただ、「それにしても何でこんなことしてあるんだろう」と思ってた。

そういうことだったのか。

javascript - Webkitでは$が定義済みな件
JavaScript のセレクターの定番イディオム
JavaScript の定番イディオム。 prototype.js でおなじみの「$」の使い方です。
いわゆる「セレクター」。

Chromeのコンソールで$を見ると、

function $(id) {
  return document.getElementById(id);
}

確かに$という関数が定義されている。FirefoxやOperaではundefined。

WebKitを作ってる人達が、コンソールを使う時の便宜として定義しておこう、と思うくらいには定番なのね、この$の使い方。

使おうとしたことないから知らないけど、prototype.jsでも$には何か重要な意味があるらしい。

jQueryだと「jQuery」と書くより短く書ける、というだけのような気もするけど、何となく$を使うほうが好きだなあ。

0 件のコメント:

コメントを投稿