JavaScript (+ Prototype.js) 面白いわ
a0057891_119552.jpgAmazon.co.jp: まるごとJavaScript & Ajax ! Vol.1: 本

 「まるごとJavaScript & Ajax !」が届いたので、手を動かしながら読んでいる。amachangさんの記事を読んで、やっぱ Prototype.js のソースも読まないといけないと思って、「prototype.js v1.5.0 の使い方」を参考にしながら、そっちも読んでみたり。

 で、最初、JavaScript には、Iterator とか、foreach にあたるものが無いのがめんどいなーとか思ってた。例えば1から10までを足すコードなんかは次のようになる。
(alert関数の文字列が、セキュリティーに引っかかるので、"print" に置き換えてあります。)
var sum = 0;
var nums = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10];
for (var i = 0, l = nums.length; i < l; i++){
sum += nums[i];
}
print(sum); 

 ところが、Prototype.js には、ObjectRange クラス というのがあって、これと eachメソッドを使うと、同じ処理をするコードが次のように書ける。
var sum = 0;
var num = new ObjectRange(1, 10);
num.each( function(e){ sum += e} );
print(sum);

もうちょっと短くすると、次のような感じ。
var sum = 0;
new ObjectRange(1, 10).each( function(e){ sum += e} );
print(sum);

で、ふと気づく。これってRubyじゃない? 同じ処理をするコードを Ruby で書いてみると、次のようになる。
sum = 0
(1..10).each{|e| sum += e}
p sum

 JavaScript (+ Prototype.js) の方がコードはちょっと長いけど、やってる事は Ruby と変わらない。

 「prototype.js v1.5.0 の使い方」で言われている
ここで提供する例とリファレンスを読んでいると、プログラミング言語 Ruby に詳しい開発者は Ruby のビルトインクラスと、このライブラリが実装している拡張が非常に似ていることに気がつくかもしれません。
ってのは、この事か。

 JavaScript 自体の言語仕様は凄くシンプルだけど、だからこそ柔軟に色々出来るのは面白い。特に、関数がオブジェクトになってるのが肝な気がする。Lisp っぽくて、書いてて楽しい。
[PR]
by fkmn | 2007-02-26 23:12 | IT
<< JavaScript の fo... 田舎に同じ苗字の人が多い理由、... >>


とあるWebアプリケーションエンジニアの日記
S M T W T F S
1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30 31
カテゴリ
以前の記事
ブログパーツ
リンク
検索
タグ
最新のトラックバック
プログラミングが「出来る..
from とりあえず9JP?
Genographic ..
from ナンジャモンジャ
ジュセリーノ
from ありの出来事
くちこみブログ集(ライフ..
from くちこみブログ集(ライフ)(..
以降、丁寧語で行こう!
from エッセイ的な何か
その他のジャンル
ファン
記事ランキング
ブログジャンル
画像一覧

fkmnの最近読んだ本 フィードメーター - フッ君の日常 あわせて読みたい AX