« テレビ番組等感想 その 63 | トップページ | HTML の id の大文字・小文字の問題 »

2007年12月 6日 (木)

JavaScript をなめるな

突っ込みどころ満載。

まず、String 型の値String オブジェクトの区別が付いていない。前者はとして扱われ、後者は参照を通じて扱われる。以下の二つのコードを比較せよ。

var s = "123";
s.property = "p";
p(s.property);
var s = new String("123");
s.property = "p";
p(s.property);

Boolean や Number についても同様。

内部構造を持つものが参照で扱われるオブジェクトであるというのは大まかには正しいが、それはプロパティが変更可能であるかどうかとは関係がない。String オブジェクトの length プロパティや RegExp オブジェクトの global プロパティは変更不可能だが、オブジェクトである以上内部構造は持っているし、変更不可能でないプロパティはもちろん変更できる。

でもって、内部構造を持たないことは普通原始的 (primitive)というのであって、原子的 (atomic)とは違う。

それにしても RegExp オブジェクトが値だなんてどこからそんな発想が。

|

« テレビ番組等感想 その 63 | トップページ | HTML の id の大文字・小文字の問題 »

コメント

コメントを書く



(ウェブ上には掲載しません)




トラックバック

この記事のトラックバックURL:
http://app.cocolog-nifty.com/t/trackback/169172/17291929

この記事へのトラックバック一覧です: JavaScript をなめるな:

« テレビ番組等感想 その 63 | トップページ | HTML の id の大文字・小文字の問題 »