Yahoo! USが公開したJavaScript(Yahoo! UI Library)を見ていると知らない文法が結構ある。まだまだ勉強が必要そうだ。
var foo = {};
と書けば空のオブジェクトを生成することが出来る。応用で無名関数のreturnでオブジェクトを生成すると、以下のようになる。
var foo = function() { return { hello: function() { alert("HelloWorld") } } }(); foo.hello(); // HelloWorldと表示される
これでfooはhelloというメソッドが定義されたインスタンスになる。
他には
var foo = new Array(); var result = foo[10] || {}; alert( result );
知っていたら何てことないが、「 || {} 」というような表記が可能なことを知らなかった。上記のコードを実行するとfoo配列に10というインデックスが無いためundefinedとなりfalseと見なされ右辺が実行(つまり空オブジェクトが生成)される。「foo[10] = “HelloWorld”;」というコードが入っていれば、左辺が実行され「HelloWorld」と出力される。
あとはargumentsという変数。
function(a, b, c) { alert( arguments.length ); }
関数の引数をarguments配列として使用可能でlengthによって引数の数を調べることもできる。
まだまだ色々な発見ができそうなので、しばらくはコードを追ってみたいと思う。