初めてオライリーの本を買いました!

エイプリルフール時に
JavaScriptカーネルについて勉強すると宣言した手前、
http://d.hatena.ne.jp/ujip/20070401/
いずれはJavaScriptのまともな本を買おうと思っていましたが、
近所の書店でたまたまオライリーの"JavaScript"という本があったので、
思わず購入。やってしまた〜。

JavaScript

JavaScript

いや〜、
どのプログラミング言語もそうですが、
JavaScriptもやっぱりなかなか深いです。

"hello".substring(1,3)

にしても、"hello"文字列に直接メソッド適用しているように見えて、
実はそうじゃなく、
この文字列をラップするオブジェクトが生成されてそいつにメソッド適用されるとか。
つまり、JavaScriptがこのスクリプトを解釈するときには、

new String("hello")

が実は実行されていて、
一時的に生成されたStringオブジェクト(これは基本データ型の文字列とは厳密には違う!)に対して、substringプロパティに束縛された関数オブジェクト(をJavaScriptでは"メソッド"と呼んでいる!)を適用しているんだそうです。
ふ〜ん!
つまり、基本データ型とオブジェクトが同じレベルにあって、
文字列基本データ型を操作するときには、
これに対応するラッパーオブジェクトが一時的に生成されるんですね。
へ〜。
まだデータ型までしか読んでいないのですが、
JavaScriptは思った通りおもしろいな〜と思いました。
関数オブジェクトについてはSchemeに通じるところもある感じでも、それ以外はそうでもないような。
変数の名前空間の扱いも独特そうで、これからが楽しみです。