作者: Bruce.
日時: 2009/2/15(11:58)
Bruce.です。

JavaScriptをJavaと書いてもうた。

davi さんは書きました:
>>>     var OTRMW = '"width","' + RMW + '"' ;
> 
> によって、文字列は結局、「"width","900"」というカタマリになります。
> これはチャンとカタマリになっているのをalertで確認取りました。
> 
> で、こいつは OTRMWに代入され、等価になってるはずなので、
> 
>>>     objectTag.setAttribute(OTRMW);
> 
> は結局、
> 
> 例:     objectTag.setAttribute("width","800");
> 
> のようになって、2個の引数が渡っている扱いになる「見込み」
> (そうなるはず。そうなってほしい。)わけなんですね。
> 
>>>     var OTRMH = '"height","' + RMH + '"' ;
>>>     objectTag.setAttribute(OTRMH);
> 
> の記述も同様に
> 
> 例:     objectTag.setAttribute("height","600");
> 
> となってほしいわけです。でも、そうなってくれない。


たとえ variable interpolation がある言語でも(Perlとか)
そんな楽しい解釈はしないでしょう。
文字列の中身によって動作が変わるなんて恐ろしいことこの上ない。

んで、

C:\Users\kbk\work>jsdb.exe
js>function hoge(x, y) { return x+y }
js>hoge(1, 2)
3
js>a=3
3
js>b=4
4
js>hoge(a, b)
7
js>hoge(a)
NaN
js>c="5,6"
5,6
js>hoge(c)
5,6undefined
js>

そゆことです。

> で、せんせ〜、どーしたら解決できますか?

二つの、適切な引数を組み立てて渡す。
としかいいようが。

-- 
木村浩一/KIMURA Koichi
 I thought what I'd do was, I'd pretend I was one of those deaf-mutes or
shoud I?
 mail kbk at kt.rim.or.jp
 web  www.kt.rim.or.jp/~kbk/zakkicho/index.html