ExtJS 3: Duas maneiras de criar classe personalizada: qual é a diferença?

Estou tentando aprender ExtJS e JavaScript orientado a objetos em geral. Eu já vi pessoas definindo classes em namespaces personalizados de duas maneiras. Qual a diferença entre esses dois 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, {
       //...
});

O método 2 é mais fácil de ler e requer menos código; existe alguma razão para o método 1 ser melhor? Obrigado!

questionAnswers(2)

yourAnswerToTheQuestion