| [ Web Proxy ] |
| Viewing: https://developer.mozilla.org/es/docs/Web/JavaScript/Reference/Global_Objects/Object | [Back] [Original] |
Get to know MDN better
Esta pgina ha sido traducida del ingls por la comunidad. Aprende ms y nete a la comunidad de MDN Web Docs.
Esta caracterstica est consolidada y funciona en muchos dispositivos y versiones de navegador. Est disponible en todos los navegadores desde julio de 2015.
* Algunas partes de esta caracterstica pueden tener distintos niveles de compatibilidad.
La clase Object representa uno de los tipos de datos en Javascript. Es usado para guardar una coleccin de datos definidos y entidades ms complejas. Los objetos pueden ser creados utilizando el constructor Object() o la sintaxis literal / inicializador de objeto.
Casi todos los objetos en JavaScript son instancias de Object; un objeto tpico hereda propiedades (incluyendo los mtodos) de Object.prototype, a pesar de que esas propiedades puedan ser sobreescritas. Aun as, un Object puede ser deliberadamente creado para que esto no se cumpla (por ejemplo con Object.create(null)), o puede alterarse para que esto no sea ms verdad (por ejemplo con Object.setPrototypeOf).
Los cambios realizados en el Object prototipo son vistos por todos los objetos de la cadena de prototipos, a no ser que las propiedades y mtodos sujetos a esos cambios hayan sido sobreescritos ms abajo en la cadena. Sobreescribir o extender el comportamiento de un objeto es un mecanismo muy poderoso, aunque potencialmente peligroso.
El constructor Objeto crea un envoltorio de objeto para el valor dado.
null o undefined, se crear un objeto y se retornar un objeto vaco.Cuando lo llamamos en un contexto no-constructivo, Object se comporta igual que new Object().
Vase tambin la la sintaxis literal / inicializador de objeto.
No hay ningn mtodo en un Objeto que sirva para borrar sus propiedades (como Map.prototype.delete()). Para hacerlo, es necesario el uso del operador delete.
Object()Crea un nuevo objeto Object. Este es un envoltorio para el valor dado.
Object.assign()Copia los valores de todas las propiedades enumerables propias de uno o ms objetos fuente al objeto asignado.
Object.create()Crea un nuevo objeto con el objeto prototipal especificado y sus propiedades.
Object.defineProperty()Agrega la propiedad nombrada descrita por el descriptor dado a un objeto.
Object.defineProperties()Aade las propiedades nombradas a un objeto.
Object.entries()Devuelve un array que contiene todos los pares [key, value] de las propiedades enumerables en formato cadena de texto que le pertenecen a un objeto dado.
Object.freeze()Congela un objeto. Otro cdigo no puede borrar ni cambiar sus propiedades.
Object.fromEntries()Devuelve un nuevo objeto de los pares iterables [key, value]. (Este mtodo hace lo contrario a Object.entries).
Object.getOwnPropertyDescriptor()Devuelve un descriptor de propiedad para una propiedad nombrada en un objeto.
Object.getOwnPropertyDescriptors()Devuelve un objeto con todos los descriptores de propiedad pertenecientes a un objeto.
Object.getOwnPropertyNames()Devuelve un arreglo que contiene todos los nombres de las propiedades enumerables y no enumerables que le pertenecen a un objeto dado.
Object.getOwnPropertySymbols()Devuelve un objeto que contiene todas las propiedades smbolo encontradas directamente en un objeto dado.
Object.getPrototypeOf()Devuelve el prototipo (la propiedad interna [[Prototype]]) del objeto especificado.
Object.is()Compara si dos valores son el mismo valor. Iguala todos los valores NaN (lo que difiere de la Comparacin Abstracta de Igualdad y de la Comparacin Estricta de Igualdad).
Object.isExtensible()Determina si est permitido extender un objeto.
Object.isFrozen()Determina si un objeto est congelado.
Object.isSealed()Determines si un objeto est sellado.
Object.keys()Devuelve un arreglo que contiene todos los nombres de las propiedades enumerables de tipo cadena de texto pertenecientes al objeto dado.
Object.preventExtensions()Previene que un objeto pueda extenderse.
Object.seal()Previene que otro cdigo pueda borrar propiedades de un objeto.
Object.setPrototypeOf()Estipula el prototipo de un objeto (su propiedad interna [[Prototype]]).
Object.values()Devuelve un arreglo que contiene todos los valores correspondientes a las propiedades enumerables de tipo cadena de texto pertenecientes a un objeto dado.
Object.prototype.constructorEspecifica la funcin que crea el prototipo de un objeto.
Object.prototype.__proto__Apunta al objeto que fue usado como prototipo cuando el objeto fue instanciado.
Object.prototype.__defineGetter__()Asocia una funcin a una propiedad que, cuando es accedida, ejecuta la funcin y retorna su valor de retorno.
Object.prototype.__defineSetter__()Asocia una funcin a una propiedad que, cuando es estipulada, ejecuta la funcin que modificar dicha propiedad.
Object.prototype.__lookupGetter__()Devuelve la funcin asociada a la propiedad establecida por el mtodo Object.prototype.__defineGetter__().
Object.prototype.__lookupSetter__()Devuelve la funcin asociada a la propiedad establecida por el mtodo Object.prototype.__defineSetter__().
Object.prototype.hasOwnProperty()Devuelve un booleano que indica si el objeto contiene una propiedad determinada como una propiedad directa del objeto y que no haya sido heredada a travs de la cadena de prototipos.
Object.prototype.isPrototypeOf()Devuelve un booleano que indica si el objeto por el cual este mtodo est siendo llamado est en la cadena de prototipos del objeto especficado.
Object.prototype.propertyIsEnumerable()Devuelve un booleano indicando si el [atributo ECMAScript [Enumerable]] interno est establecido.
Object.prototype.toLocaleString()Llama a toString().
Object.prototype.toString()Devuelve una representacin del objeto en formato cadena de texto.
Object.prototype.valueOf()Devuelve el valor primitivo del objeto especificado.
Object dados los tipos undefined y nullLos siguientes ejemplos almacenan un objeto vaco Object en o:
let o = new Object();
let o = new Object(undefined);
let o = new Object(null);
Object para crear objetos BooleanLos siguientes ejemplos almacenan objetos Boolean en o:
// equivalente a o = new Boolean(true)
let o = new Object(true);
// equivalente a o = new Boolean(false)
let o = new Object(Boolean());
Cuando altere el comportamiento de los mtodos existentes en Object.prototype, considere inyectar el cdigo envolviendo la extensin antes o despus de la lgica existente. Por ejemplo, este cdigo (no testeado) ejecutar precondicionalmente la lgica modificada antes que la lgica predefinida o la ejecucin de cualquier otra extensin.
Cuando una funcin es llamada, los argumentos de la llamada son retenidos por la "variable" pseudo-arreglo arguments. Por ejemplo en la llamada myFn(a, b, c), los argumentos dentro del cuerpo de myFn contendrn tres elementos pseudo-arreglo correspondientes a (a, b, c).
Cuando modificamos prototipos con hooks, pase this y sus argumentos (el estado durante el llamado) al actual comportamiento llamando a apply() en la funcin. Esta patrn puede ser usado por cualquier prototipo, como Node.prototype, Function.prototype, etc.
var current = Object.prototype.valueOf;
// Ya que mi propiedad "-prop-value" es transversal y no siempre est
// en la misma cadena protipal, yo quiero cambiar el Object.prototype:
Object.prototype.valueOf = function () {
if (this.hasOwnProperty("-prop-value")) {
return this["-prop-value"];
} else {
// Si no parece uno de mis objetos, debo caer en
// el comportamiento predeterminado reproduciendo el comportamiento actual lo mejor que podamos.
// Apply se comporta como lo hace "super" en otros lenguajes.
// A pesar de que valueOf() no tome ningn argumento, puede hacerlo.
return current.apply(this, arguments);
}
};
Ya que JavaScript no tiene exactamente objetos sub-clase, el prototipo sirve para crear objetos que acten como "clase base" para ciertas funciones que actan como objetos y as mitigar esta limitacin. Por ejemplo:
var Person = function (name) {
this.name = name;
this.canTalk = true;
};
Person.prototype.greet = function () {
if (this.canTalk) {
console.log("Hola, yo soy " + this.name);
}
};
var Employee = function (name, title) {
Person.call(this, name);
this.title = title;
};
Employee.prototype = Object.create(Person.prototype);
Employee.prototype.constructor = Employee;
//Si no aplicas Object.prototype.constructor a Employee,
//tomar prototype.constructor de Person (padre).
//Para evitarlo, aplicamos prototype.constructor a Employee (hijo).
Employee.prototype.greet = function () {
if (this.canTalk) {
console.log("Hola, yo soy " + this.name + ", el " + this.title);
}
};
var Customer = function (name) {
Person.call(this, name);
};
Customer.prototype = Object.create(Person.prototype);
Customer.prototype.constructor = Customer;
//Si no aplicas Object.prototype.constructor a Customer,
//tomar prototype.constructor de Person (padre).
//Para evitarlo, aplicamos prototype.constructor a Customer (hijo).
var Mime = function (name) {
Person.call(this, name);
this.canTalk = false;
};
Mime.prototype = Object.create(Person.prototype);
Mime.prototype.constructor = Mime;
//Si no aplicas Object.prototype.constructor a Mime,
//tomar prototype.constructor de Person (padre).
//Para evitarlo, aplicamos prototype.constructor a Mime (hijo).
var bob = new Employee("Bob", "Constructor");
var joe = new Customer("Joe");
var rg = new Employee("Red Green", "Reparador");
var mike = new Customer("Mike");
var mime = new Mime("Mime");
bob.greet();
// Hola, yo soy Bob, el Constructor
joe.greet();
// Hola, yo soy Joe
rg.greet();
// Hola, yo soy Red Green, el Reparador
mike.greet();
// Hola, yo soy Mike
mime.greet();
| Especificacin |
|---|
| ECMAScript 2027 LanguageSpecification # sec-object-objects |
Esta pgina se modific por ltima vez el 29 may 2026 por colaboradores de MDN.
ObjectObject.assign()Object.create()Object.defineProperties()Object.defineProperty()Object.entries()Object.freeze()Object.fromEntries()Object.getOwnPropertyDescriptor()Object.getOwnPropertyDescriptors()Object.getOwnPropertyNames()Object.getOwnPropertySymbols()Object.getPrototypeOf()groupBy()Object.hasOwn()Object.is()Object.isExtensible()Object.isFrozen()Object.isSealed()Object.keys()Object.preventExtensions()Object.seal()Object.setPrototypeOf()Object.values()Object/FunctionPartes de este contenido son 19982026 de colaboradores individuales de mozilla.org. Contenido disponible bajo una licencia Creative Commons.
| Web Proxy Viewer | New URL | Original Page |