Objetivos
Object
Object é a classe base que todos os objetos em JavaScript herdam. Nesta parte
do tutorial vamos aprender a instanciar um objeto e também suas propriedades e métodos
para manipular seus dados.
Declaração
Para instanciar um objeto do tipo Object utilizamos seu construtores padrão, podendo
ou não um ter um valor como argumento.
Sintaxe
let nome_variavel = new Object( value );
let nome_variavel = new Object()
Onde
value: valor passado como argumentos. O novo objeto criado é baseado no value passado.
Se null ou undefined, um objeto vazio será criado.
Exemplo 1
let obj = new Object(100);
let obj = Object(true);
Saída
-
A classe Object possui algumas propriedades que retornam informaçõe sobre seu tipo
de dados. Abaixo a lista de propriedades:
Propriedade |
Descrição |
|
constructor |
Retorna a função construtora |
Visitar |
constructor
A propriedade constructor retorna a função que é utilizada para a
instanciação do tipo de dado Object.
Sintaxe
nome_objeto.constructor;
Exemplo 1
let funcao = Number().constructor;
let num = funcao(100);
console.log(typeof(num));
Saída
number
Os métodos listados abaixo são fornecidos pelo classe Object para manipulação de suas
informações.
Método |
Descrição |
|
assign |
Atribui valores/propriedaddes a um objeto |
Visitar |
create |
Cria instância de um objeto |
Visitar |
defineProperties |
Adiciona propriedades a um objeto |
Visitar |
defineProperty |
Adiciona propriedade a um objeto |
Visitar |
entries |
Retorna iterador |
Visitar |
freeze |
Torna propriedades somente-leitura |
Visitar |
fromEntries |
Converte iterador chave/valor em objeto |
Visitar |
getOwnPropertyDescriptor |
Retorna configuraçõe de propriedade de um objeto |
Visitar |
getOwnPropertyDescriptors |
Retorna configuraçõe de todas propriedades de um objeto |
Visitar |
getOwnPropertyNames |
Retorna array contendo nomes de chaves |
Visitar |
getOwnPropertySimbols |
- |
- |
getPrototypeOf |
Recupera propriedade prototype. |
Visitar |
groupBy |
- |
- |
hasOwn |
- |
- |
hasOwnProperty |
- |
- |
is |
Compara dos valores ou objetos |
Visitar |
isExtensible |
Verifica se objeto é extensível. |
Visitar |
isFrozen |
Verifica se objeto é somente-leitura |
Visitar |
isPrototypeOf |
- |
- |
isSealed |
Verificar se objeto está selado para alterações |
Visitar |
keys |
Retorna array contendo chaves, no formato string, de um objeto |
Visitar |
preventExtensions |
Define um objeto para ser extensível. |
Visitar |
propertyIsEnumerable |
- |
- |
seal |
Define um objeto como selado |
Visitar |
setPropertyOf |
Define a propriedade property. |
Visitar |
toLocaleString |
- |
- |
toString |
- |
- |
valueOf |
- |
- |
values |
Retorna um array com os valores de um objeto. |
Visitar |
Com o método assign podemos atribuir valores/propriedades a um objeto. Esse método recebe os
objetos como argumento para atribuição e não possui retorno.
Sintaxe
nome_objeto.assign(target,...source);
Onde
target: objeto em será atribuído
source: objeto contendo valores para atribuir
Exemplo 2
let objeto1 = {
valor1 : 100
};
let objeto2 = {
valor2 : 200
};
let retorno = Object.assign(objeto1,objeto2);
console.log(objeto1.valor1);
console.log(objeto1.valor2);
Saída
100
200
O método estático create é utilizado para criar novas instâncias de objetos
dinamicamente.
Sintaxe
nome_objeto.create();
Onde
-
Retorno
Novo Object
Exemplo 3
let objeto1 = {
valor1 : 100,
valor2 : "string"
};
let obj = Object.create(objeto1);
console.log(obj.valor1);
Saída
100
O método defineProperties nos permite adicionar mais de uma nova propriedade a um objeto.
Esse método não possui retorno e recebe como argumentos as informações de uma nova propriedade.
Sintaxe
Object.defineProperties( obj, {prop1, prop2, propN});
Onde
obj: objeto no qual desejamos adicionar um propriedade
prop: nome da propriedade
descriptor: Objeto contendo valor e outras flags.
Exemplo 4
function meuObjeto(){
};
Object.defineProperty(meuObjeto, 'novaPropriedade', {
value: 900,
});
let obj = new meuObjeto();
obj.novaPropriedade = 900;
console.log(obj.novaPropriedade);
Saída
900
Com o método entries podemos recuperar um vetor contendo as propriedades e valores
contidos em um objeto. O array retornado contém seus elementos no formato
chave-valor.
Sintaxe
Object.entries(obj)
Onde
obj: objeto que desejamos recuperar os dados
Retorno
Um array contendo chave-valor dos atributo/valor de um obj.
Exemplo 5
meuObjeto = {
atributo1:'teste',
atributo2: 999
};
let it = Object.entries(meuObjeto);
for ( let [ch,vl] of it)
console.log(ch,vl);
Saída
atributo1 teste
atributo2 999
O método freeze é utilizado para tornar as propriedades de um objeto
não configuráveis e somente-leitura.
Sintaxe
Object.freeze( obj )
Onde
obj: objeto que desejamos tornar somente-leitura.
Retorno
Retorna obj
Exemplo 6
meuObjeto = {
atributo1: -1
};
let it = Object.freeze(meuObjeto);
meuObjeto.atributo1 = 999;
console.log(meuObjeto.atributo1);
Saída
-1
Com o método fromEntries, podemos converter um tipo de dado iterável,
que contém chave e valor, em um objeto. As chaves e valores são transformados em
propriedades.
Sintaxe
Object.fromEntries(iterable)
Onde
iterable: iterável, como Map, contendo lista de elementos contendo chave/valor.
Retorno
Objeto contendo chaves/valores de iteravel como propriedades.
Exemplo 7
meuObjeto = new Map([
['atrib1', 'teste'],
['atrib2', 999]
]);
let it = Object.fromEntries(meuObjeto);
console.log(meuObjeto);
Saída
Map { 'atrib1' => 'teste', 'atrib2' => 999 }
Com o método getOwnPropertyDescriptor podemos recuperar as configurações de
uma propriedade específica que é passada como argumento.
Sintaxe
Object.getOwnPropertyDescriptor(obj, prop);
Onde
obj: objeto que desejamos recuperar as informações da propriedade.
prop: nome da propriedade
Retorno
Objeto contendo chaves/valores de iteravel como propriedades.
Exemplo 8
meuObjeto = {
atrib: -1
};
descritor = Object.getOwnPropertyDescriptor(meuObjeto,"atrib");
console.log(descritor);
Saída
{ value: -1, writable: true, enumerable: true, configurable: true }
getOwnPropertyDescriptors
Utilizando o método getOwnPropertyDescriptors, podemos recuperar as
configurações de todas as propriedades de um objeto que é passado como argumento.
Sintaxe
Object.getOwnPropertyDescriptor(obj);
Onde
obj: objeto que desejamos recuperar as informações da propriedade.
Retorno
Objeto contendo as configurações de obj.
Exemplo 9
meuObjeto = {
atrib: -1,
atrib2: -2
};
descritor = Object.getOwnPropertyDescriptors(meuObjeto);
console.log(descritor);
Saída
{
atrib: { value: -1, writable: true, enumerable: true, configurable: true },
atrib2: { value: -2, writable: true, enumerable: true, configurable: true }
}
O método getOwnPropertyNames é utilizado para recuperar o nome/chave de
todas as propriedades de um objeto em forma de um array.
Sintaxe
Object.getOwnPropertyNames(obj)
Onde
obj: objeto que desejamos recuperar os nomes das propriedades
Retorno
Array de string contendo os nomes das propriedades de obj.
Exemplo 10
meuObjeto = {
atrib: -1,
atrib2: -2
};
nomes = Object.getOwnPropertyNames(meuObjeto);
console.log(nomes);
Saída
[ 'atrib', 'atrib2' ]
Com o método getPrototypeOf podemos recuperar a propriedade prototype
que nos permite adicionar novos métodos e propriedades.
Sintaxe
Object.getPrototypeOf(obj);
Onde
obj: objeto que desejamos recuperar a prototype
Retorno
Objeto prototype
Exemplo 11
function meuObjeto(){
this.atrib= -1;
this.atrib2= -2;
}
obj = Object.create(meuObjeto);
prot = Object.getPrototypeOf(meuObjeto);
prot.nome = "teste";
console.log(obj.nome);
Saída
teste
O método is é utilizado para comparação de dois valores que são passados como
argumento para o método.
Sintaxe
Object.is(value1, value2);
Onde
value1..2: valores para comparação
Retorno
true se iguais, false caso contrário
Exemplo 12
console.log(Object.is(1,'A'));
console.log(Object.is(1,2));
console.log(Object.is(1,1));
Saída
false
false
true
Com o método isExtensible podemos verificar se um objeto é extensível,
ou seja, se pode sofrer alterações para adição de novas propriedades e métodos.
Sintaxe
Object.isExtensible(obj)
Onde
obj: objeto que desejamos verificar
Retorno
true se é extensível, false caso contrário.
Exemplo 13
meuObjeto = {
atrib1: 1
};
console.log(Object.isExtensible(meuObjeto));
Saída
true
Utilizando o método isFrozen podemos verificar se um objeto está em estado
"congelado", ou seja, não suporta alteração para adição de métodos e propriedades.
Sintaxe
Object.isFrozen(obj)
Onde
obj: objeto que desejamos verificar
Retorno
true se objeto está congelado, false caso contrário.
Exemplo 14
meuObjeto = {
atrib1: 1
};
console.log(Object.isExtensible(meuObjeto));
Saída
true
O método isSealed é utilizado para verificar se um objeto está selado, ou seja,
não é extensível e suas propriedades não podem ser configuradas.
Sintaxe
Object.isSealed(obj)
Onde
obj: objeto que desejamos verificar
Retorno
true se objeto está selado, false caso contrário.
Exemplo 15
meuObjeto = {
atrib1: 1
};
console.log(Object.isSealed(meuObjeto));
Saída
false
Com o método keys podemos recuperar um array contendo as chaves de um
tipo de dado chave/valor em forma de string.
Sintaxe
Object.keys(obj)
Onde
obj: objeto que desejamos recuperar as chaves
Retorno
Array contendo as chaves de obj em forma string.
Exemplo 16
meuObjeto = {
atrib1: 1,
atrib2: 1
};
console.log(Object.keys(meuObjeto));
Saída
[ 'atrib1', 'atrib2' ]
Utilizando o método preventExtensions podemos definir um objeto como não
extensível, ou seja, não podemos adicionar propriedades e métodos.
Sintaxe
Object.preventExtensions(obj)
Onde
obj: objeto que desejamos configurar
Retorno
Retorna obj configurador para prevenir sua extensão.
Exemplo 17
meuObjeto = {
atrib1: 1,
atrib2: 1
};
console.log(Object.isExtensible(meuObjeto));
Object.preventExtensions(meuObjeto);
console.log(Object.isExtensible(meuObjeto));
Saída
false
true
O método seal é utilizado para selar um objeto, ou seja, não será possível
adicionar novas propriedades ou métodos.
Sintaxe
Object.seal(obj)
Onde
obj: objeto que desejamos selar
Retorno
Retorna obj selado.
Exemplo 18
meuObjeto = {
atrib1: 1,
atrib2: 1
};
Object.seal(meuObjeto);
console.log(meuObjeto);
meuObjeto.propriedade = 10;
console.log(meuObjeto);
Saída
{ atrib1: 1, atrib2: 1 }
{ atrib1: 1, atrib2: 1 }
Com o método setPrototypeOf podemos atribuir um valor à propriedade prototype
de um objeto em outro objeto.
Sintaxe
Object.setPrototypeOf(obj, prototype)
Onde
obj: objeto que desejamos manipular.
prototype: nova propriedade para adicionar/alterar.
Retorno
Retorna obj.
Exemplo 19
obj = {};
meuObjeto = {
atrib1: 1,
atrib2: 2
};
Object.setPrototypeOf(obj,meuObjeto);
console.log(obj.atrib2);
Saída
2
Utilizando o método values podemos recuperar um array contendo os
valores de um tipo de dado chave/valor.
Sintaxe
Object.values(obj)
Onde
obj: objeto que desejamos manipular.
Retorno
Array contendo os valores de obj.
Exemplo 20
meuObjeto = {
atrib1: 1,
atrib2: "string"
};
chaves = Object.values(meuObjeto);
console.log(chaves);
Saída
[ 1, 'string' ]
Histórico de atualizações
- 19/08/2025 - revisão 4 - Ajustes: pontuais, sintaxes e 'objetivos'
- 25/09/2024 - revisão 3 - Correção em descrição de métodos em tab. de métodos; ajustes pontuais
- 02/09/2024 - revisão 2 - Correção em links de objetivos
- 05/10/2023 - revisão 1 - Correção em layout, navegação e erros gramaticais
- 31/05/2023 - versão inicial
Os cursos oferecidos nesta página são cursos fornecidos por parceiros. Ao comprar um curso clicando
em seu banner, você está ajudando a manter o projeto TutorialDev vivo. Os sites dos cursos parceiros utilizam cookies.