Hatena::ブログ(Diary)

駄文垂れ流しブログ

体重 / 筋肉量 / 体脂肪率

2011-05-05

JavaScript を勉強してみたい

| 12:05

生まれてこの方 JavaScritp は使ったこと無かったのですが、Google Maps JavaScript API V3 では API キーが不要となりますますお手軽になっていることを知り、ちょっとかじってみることにした。オブジェクト指向、ダック・タイピングな型付け、JSON のシンプルさ、ブラウザがあれば簡単にコードを動かせるところなど、学習しやすく便利なもんであろうと思います。

また、クロージャっていいよねという話をこことかこことかで見て、自分でもちゃんと理解したいと思っておりました。しかし、仕組みは分かったが何がいいのかいまいち分かない。こんな感じ?

  1. 使い捨ての匿名関数隠蔽できる。
  2. 関数に状態を持たせられる。

上記 @IT の例にいたってはグローバル変数を持たずに状態を保持できるという点を美点として挙げているが、外側の関数がいつどこで呼ばれるか分からないのでグローバル変数と大差ないように思える。中島さんのブログの方はメリットとして実行効率の向上を挙げているが、こちらはまだ理解できる。ただ、C/C++ でも static 宣言すれば同じように毎回のメモリ確保を防げるし private 使えるので、クロージャすごい、というところまで理解できない。匿名関数については C++0x で lambda 式使えるし。難しいなぁ。

var code2name = (function(){
	var mapping =
	{
		'us': 'United States',
		'ja': 'Japan',
		'ko': 'Korea',
		'ru': 'Russia',
		'uk': 'United Kingdom',
		'fr': 'France',
		'cc': 'China',
		'gw': 'Germany'
	};
	
	return function(code) { return mapping[code] || '(unknown)';};
})();

document.writeln(code2name('ja')); // Japan

karuakunkaruakun 2014/02/18 04:54 jQueryなんかは引数に関数を要求するので、クロージャーというか匿名関数が無いとやってられないのですよね。

トラックバック - http://d.hatena.ne.jp/newforms/20110505/1304611540