Object: el objeto global

Descripción de Object

El objeto por encima de todos los demás en Javascript es Object. Todos los demás dependen de él. Tanto los predefinidos del lenguaje (Array, Date, Map...) como los definidos en el programa.

Si no lo has hecho, sería bueno que te leas la sección dedidaca a clases y objetos en Javascript. Es una explicación de como se crean y usan los objetos y como funciona la propiedad prototype para implementar la herencia.

Object posee métodos estáticos, es decir, que se usan sin instanciar la clase, y que no son heredables. Pero también posee propiedades y métodos heredables a través de la cadena de prototype.

Por ejemplo Object posee un método estático denominado keys() que enumera las propiedades de un objeto, y otro assign() que copia los elementos de un objeto en otro. Vemos como podemos usarlos

var ficha;

ficha = {nombre:'Juan', edad:30};

console.log( Object.keys(ficha) );

Tenemos el objeto ficha (aunque no se vea explicitamente es una instancia de Object) y le aplicamos el método esático de Object keys() que nos devuelve las propiedades (claves) de ficha.

Esta es la forma de aplicar los métodos estáticos: el nombre del ocntructor (en este caso Object), que puede llevar como argumenot el objeto al que se aplica u otros, según el método en concreto.

El uso de prototype es también muy simple como ves en este ejemplo.

Object.prototype.padre = function(){

     return "Constructor "+this.constructor.name;

};

var lista= new Array();

var fecha = new Date();

console.log( lista.padre() );

console.log( lista.padre() );

Ahora los objetos poseen un método que nos devuelve el nombre su constructor. Este método es accesible por todos los objetos derivados de Object.

Resumiendo

El objeto Object es el objeto padre de todos los objetos de Javascript.

Object oropaga sus propiedades y métodos almacenados en prototype a todos los obejtos descendientes de él.

Mediante código es posible crear objetos descendientes de Object, a los que se le spuede añadir más métodos y propiedades.

Las instancias de Object pueden sobreescribir los métodos heredados de su constructor y crear sus propios prototype.