サイトマップ

JavaScriptコードスニペット:変数宣言を省略する

どこで見かけたのか失念してしまったのですが、おそらくbookmarkletの類だったかと思いますが、次のような感じのコードを見たことがあります。

(function(d,a){
  a(d.title);
})(document,alert);

最初は難読化対策かなにかと思ったのですが、じっくり見ているとそうでないことに気がつきました。bookmarkletのようにコード量が制限されている場合には、できるだけ短く記述したいものです。そのためには次のようなことを考えます。

  • documentだのwindowだの長い名前だけど何度も使用するようなオブジェクトや関数は、一旦短い名前の変数に入れて使う。

そうすると、たとえば

(function(){
  var d=document;
  var a=alert;
  a(d.title);
});

というように、変数宣言して使うことになります。JavaScriptはスコープ内できちんと変数宣言してから使わないと、グローバル変数とみなされて名前空間を汚すことになってしまいます。そういうコードはトラブルの元になりかねないし、第一みっともないですよね。

で、先のコードはこのvarによる変数宣言を使わずに、関数の引数を変数宣言の代わりに使ってるのです。これで、ほんの少しですがコードを短くすることができるというわけです。凄いことを考え付く人がいるものです。

関連コンテンツ

 
research/1309086095.txt · 最終更新: 2011/07/02 08:36 by Kazuyuki Matsuda
特に明示されていない限り、本サイトの内容は次のライセンスに従います:Copyright(C) 2011 Shorindo, Inc. All Rights Reserved
Powered by PHP Valid XHTML 1.0 Valid CSS Driven by DokuWiki