Instancias de Object
Cada vez que creamos un nuevo objeto en JavaScript este hereda en automático las propiedades y métodos del constructor Object
.
Ejemplo la propiedad constructor
, está disponible en cualquier instancia de Object:
var obj = {};
console.log(obj.constructor); // Object() { [native code] }
hasOwnProperty
Este método también está disponible en todos los objetos de JavaScript y permite evaluar si el un objeto contiene una propiedad y entonces retorna true
. Si es una propiedad que es heredada de la cadena de prototype
entonces devuelve false
.
console.log(obj.hasOwnProperty('constructor')); // false
obj.color = 'blue';
console.log(obj.hasOwnProperty('color')); // true
propertyIsEnumerable
Evalúa si una propiedad dentro de un objeto puede ser iterada con la sentencia for ..in
. Las propiedades propias del objeto son enumerables por defecto. Las propiedades que son heredadas de la cadena prototype
pueden ser o no enumerables al momento de ser definidas.
console.log(obj.propertyIsEnumerable('color')); // true
console.log(obj.propertyIsEnumerable('constructor')); // false
toString
Todos los objetos heredan este método y sirve para retornar una representación en cadena de texto del objeto.
console.log(obj.toString()); // [object Object]
console.log(['a', 'b', 'c'].toString()); // a,b,c
Como se puede observar cada constructor implementa su propia versión del método toString
. Si quisiéramos utilizar el método troString
del constructor Object
haríamos lo siguiente:
console.log(Object.prototype.toString.call(['a', 'b'])); // [object Array]