new function(){}と(function(){})()の違い

(function(){})() の代わりに - IT戦記関連
カップリングとか言われたのでのっかりコネタ

(function(){
this; // object global
})()

new function() {
this; // object object
}
  • (function(){})()
    • thisがglobal(ブラウザだったらwindowオブジェクト)
    • returnしたものを返す。
  • new function(){}
    • thisが自分自身(実行しているのがコンストラクタだから)
    • thisを返す。

他になんかあったっけ?とりあえず両者を区別しなくても困るケースは思いつかない。