私はjavascriptデザインパターンの本を読んでいて、「コマンドパターン」を読んでいるときに以下のコードに出くわしました。私は、このコードがすぐに呼び出される無名関数にラップされている理由を理解しようとしています。特に、クロージャーするプライベート変数が他にないためです。これは、CarManager をオブジェクト リテラルとして宣言することとどう違うのでしょうか?
(function(){
var CarManager = {
// request information
requestInfo: function( model, id ){
return 'The information for ' + model + ' with ID ' + id + ' is foobar';
},
// purchase the car
buyVehicle: function( model, id ){
return 'You have successfully purchased Item ' + id + ', a ' + model;
},
// arrange a viewing
arrangeViewing: function( model, id ){
return 'You have successfully booked a viewing of ' + model + ' ( ' + id + ' ) ';
}
};
})();