うーむ、この挙動の変更には驚いた。
今までなら、
js>>
a = $H()
Object _object=Objecta.test = 'foo'
"foo"a.inspect()
"#<Hash:{'test': 'foo'}>"
<<--
という挙動だったのだけれど、version 1.6以降、最後の結果が
js>>
a.test = 'foo'
"foo"a.inspect()
"#Hash:{}"
<<--
と、空っぽのままになってしまう。
Hashへの要素の追加は、以下のようにgetやsetを使わなくては
ならないようだ。
js>>
a.set('test', 'foo')
"foo"a.inspect()
"#<Hash:{'test': 'foo'}>"
<<--
これは結構影響が大きな変更なんじゃないかな・・・。
####追記
Rails 2.0からprototype.js 1.6が使われるようになったから、
今頃気がついたわけですね。
JavaScriptライブラリ「Prototype.js 1.6.0」正式版リリース(ライブラリ)
Elementsは「new Element(...)」というシンタックスで生成できるようになり、Element#insert、Element#select、 Element#wrapといったAPIが提供された。また、Hashに関するAPIが変更され、Hash#get、Hash#setを使う必要がある。
posted by
genki on Wed 26 Dec 2007 at 17:49 with 0 comments