JavaScript をなめるな
- 404 Blog Not Found:アルゴリズム百選 - 値と参照 - 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 オブジェクトが値だなんてどこからそんな発想が。
| 固定リンク

コメント