連想配列に無名関数

var test = {"a":(function (){return alert("a")})()};
console.log(test.a);

使いなれたら便利なんだろうけどすごく違和感がある。
あと無名関数と匿名関数ってどっちの呼び名が正しいのかわからない。