Clique sobre os tópicos listados abaixo para navegar até o conteúdo desejado.

  1. Instanciar Object
  2. Propriedades
  3. Métodos

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.

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

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 }

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' ]
  1. 19/08/2025 - revisão 4 - Ajustes: pontuais, sintaxes e 'objetivos'
  2. 25/09/2024 - revisão 3 - Correção em descrição de métodos em tab. de métodos; ajustes pontuais
  3. 02/09/2024 - revisão 2 - Correção em links de objetivos
  4. 05/10/2023 - revisão 1 - Correção em layout, navegação e erros gramaticais
  5. 31/05/2023 - versão inicial