Hatena::Groupos0x

FFFF RSSフィード

0xFFのメモです。

2008 March 19th Wednesday

JavaScriptはnewするときに()括弧を省略できる

| 15:51 | JavaScriptはnewするときに()括弧を省略できる - FFFF を含むブックマーク はてなブックマーク - JavaScriptはnewするときに()括弧を省略できる - FFFF

twwpより、

(new Image).src = url - #生存戦略 、それは - subtechから

(new Image).src = url;//ok
new Image().src = url;//ok
new Image.src   = url;//ng

(元記事はだいぶ前のだけど、)これらの違いについて。

そもそも、newするときに引数を特に渡さない場合は()を省略できるという話(と、JavaScript第5版には書いてあったけどWEBのドキュメントではそういう記述が見当たらない。。見てるところが悪いのだろうけど。)。つまり、以下の2つは同じ意味に。

 img = new Image();
 img = new Image;

で、何で先の3つ目が駄目な(目的の動作にならない)のかというと、Imageのsrcプロパティをnewしてるからということになる。

new Image.src();
//例えば、下記のようにしておくとnewしたときにalertされる
Image.src = function(){
alert(this);
};