Como otros han señalado, una función es un objeto de modo que las dos formas pueden ser intercambiables. Como nota al margen, jQuery utiliza el enfoque de función como espacio de nombres para admitir la invocación de espacios de nombres y (en caso de que se pregunte quién más hace ese tipo de cosas o por qué).
Sin embargo, con el enfoque de la función-como-espacio de nombres, no están reservados propiedades que no deben tocarse o de otra manera son inmutables:
function Namespace(){}
Namespace.name = "foo"; // does nothing, "name" is immutable
Namespace.length = 3; // does nothing, "length" is immutable
Namespace.caller = "me"; // does nothing, "caller" is immutable
Namespace.call = "1-800-555-5555" // prob not a good idea, because...
// some user of your library tries to invoke the
// standard "call()" method available on functions...
Namespace.call(this, arg); // Boom, TypeError
Estas propiedades no se cruzan con Object
lo que el enfoque de objetos-como-espacio de nombres no tendrá estos comportamientos.
[Libro de patrones de diseño de JS] (http://addyosmani.com/resources/essentialjsdesignpatterns/book/#detailnamespacing) contiene un capítulo sobre diferentes patrones de espacios de nombres. – hellectronic