素人がプログラミングを勉強していたブログ

プログラミング、セキュリティ、英語、Webなどのブログ since 2008

連絡先: すかいぷ:javascripter_  か javascripter あっと tsukkun.net skypeのほうがいいです

リテラルと括弧

ちょっとしたメモ。

({
a:function(){alert('foo')}
}).a()

とすると、アラートが表示される。

()の中を外から参照できないから、適当に名前をつけて使い捨てすることもできる。
つまり、下のようにすればaがarguments.calleeと同じような役割を果たす。外からaを参照することはできない。

(function a(x){
if(x)return x;
alert(a(true));
})()
a//ReferenceError: a is not defined

あと、

([1,2,3])[2];//3

や、

(1).toString()//"1"

という書き方もできる。

1.toString()

は、1がNumberオブジェクトのラッパーに包まれないのでSyntaxError: missing ; before statementになる。
どこで見たか忘れてしまったけど、

1..toString()//"1"

と書くこともできる。