旧それなりブログの跡地、画像やスタイルやJSなどが壊れてることがあります。

連想配列のキーにStringオブジェクトそのものを使えるのか

2007年6月7日

Rubyの本を読んでいて
「ハッシュのキーに、オブジェクトを使うことができます」と書いてあったので
javascriptでできるのかなとやってみた。

var foo = new String("foo");
var bar = new String("bar");
foo._toUpper = function(){return "FOO"};
bar._toUpper = function(){return "BAR"};
var hash = {};
hash[foo] = 1;
hash[bar] = 2;
for (var i in hash) {
alert(i._toUpper()); // ---> "_toUpper is not a function" のエラー
};

できなかった。

javascriptは基本文法に近づく程特殊ルールが多くなってきて、それが少々気持ち悪いような。
それとも、それが特殊に見えちゃうのは、自分の理解不足なのかなぁ。
後、Ruby本を読んでると、「javascriptとかPHPでどうなんだろ」という確認点が沢山出てきて、面白いです。
「言語は色々やった方がいいよ」ってのが、段々と身にしみてきたような気がします。
(程度や重要性の検討は必要だと思いますが)