ExtJS 3: Dos formas de crear una clase personalizada: ¿cuál es la diferencia?

Estoy tratando de aprender ExtJS y JavaScript orientado a objetos en general. He visto personas que definen clases en espacios de nombres personalizados de varias maneras. ¿Cuál es la diferencia entre estos dos métodos?

Método 1

Ext.ns('myapp.cars');
(function(){
    var Car = Ext.extend(Object, {
       //...
    })

    myapp.cars.Car = Car;
})()

Método 2

Ext.ns('myapp.cars');
myapp.cars.Car = Ext.extend(Object, {
       //...
});

El método 2 es más fácil de leer y requiere menos código; ¿Hay alguna razón por la cual el Método 1 es mejor? ¡Gracias!

Respuestas a la pregunta(2)

Su respuesta a la pregunta