Aguarde, carregando...

JS-0409 - JavaScript Completo ES6 - Object

JS-0409 - JavaScript Completo ES6 - Object
Publicado em 20/03/2021 16h57

Conhecendo para controlar!

O Object é o construtor de objetos em JS, permitindo a estes a herança de propriedades e métodos do seu prototype. A  criação de objetos se dá através de um wrapper (função destinada a chamar uma ou mais funções) de objeto para o valor fornecido. Se o valor for null ou undefined, o retorno criará um objeto vazio, caso contrário, retornará um objeto de um tipo que corresponda ao valor passado. Se o valor já for um objeto, ele retornará o valor.

Quando o objeto é chamado sem o new Object(), o comportamento é idêntico ao construtor. Ex:

JS-0409 - JavaScript Completo ES6 - Object

Agora, vamos conhecer alguns métodos de Object:

  • create(obj, defineProperties): método que retorna um novo objeto a partir de um existente, utilizando-o como protótipo e permitindo o acréscimo de propriedades (opcional). Ex:
JS-0409 - JavaScript Completo ES6 - Object
  •  assign(alvo, obj1, obj2): método que copia os valores de todas as propriedades próprias enumeráveis de um ou mais objetos para um objeto alvo, retornando o objeto alvo modificado. Ex:
JS-0409 - JavaScript Completo ES6 - Object
  • defineProperties(alvo, propriedades): método que adiciona ao alvo novas propriedades permitindo a definição destas novas propriedades ou modificação da definição de uma existente, retornando o objeto. As definições de propriedades são as seguintes:
  1. configurable: se definido como true permite ser alterado e deletado do objeto. O valor padrão é false;

  2. enumerable: se true e somente se esta propriedade aparece durante enumeração das propriedades no objeto, define se ela deve ser exibida em uma repetição. O valor padrão é false;

  3. value: valor associado com a propriedade, podendo ser qualquer valor válido em JS  (número, objeto, função etc). O valor padrão é undefined;

  4. writable: se true, permite a modificação do valor da propriedade através de um operador de atribuição. O valor padrão é false;

  5. get: função que funciona como um getter da propriedade, ou undefined se não houver getter. Quando a propriedade é acessada, esta função é chamada sem argumentos. Com o this,  define para o objeto no qual a propriedade é acessada. O valor retornado será usado como valor da propriedade. O valor padrão é undefined; e

  6. set: função que funciona como um setter para a propriedade, ou undefined se não houver setter. Quando a propriedade é atribuída, esta função é chamada com um argumento. Com o this, configura o objeto através do qual a propriedade é atribuída. O valor padrão é undefined.

JS-0409 - JavaScript Completo ES6 - Object
  • getOwnPropertyDescriptors(obj): lista todos os métodos e propriedades de um objeto, com as suas devidas configurações;
  • getOwnPropertyDescriptors(Array): lista com métodos e propriedades e Array;
  • getOwnPropertyDescriptors(Array.prototype):lista com métodos e propriedades do protótipo de Array; e
  • getOwnPropertyDescriptor(window, 'innerHeight'):puxa de uma única propriedade.
JS-0409 - JavaScript Completo ES6 - Object
JS-0409 - JavaScript Completo ES6 - Object
  • keys(obj), values(obj) e entries(obj): keys(obj) retorna uma array com as chaves de todas as propriedades diretas e enumeráveis do objeto, .values(obj) retorna uma array com os valores do objeto e entries(obj) retorna uma array com array's contendo a chave e o valor. Ex:
JS-0409 - JavaScript Completo ES6 - Object
  • getOwnPropertyNames(obj): retorna uma array com todas as propriedades diretas do objeto (não retorna as do protótipo);
  • getPrototypeOf(): retorna o protótipo do objeto; e
  • is(obj1, obj2): verifica se os objetos são iguais e retorna true ou false.
JS-0409 - JavaScript Completo ES6 - Object
  •  freeze(): impede qualquer mudança nas propriedades;
  • seal(): previne a adição de novas propriedades e impede que as atuais sejam deletadas; e
  • preventExtensions(); previne a adição de novas propriedades.
JS-0409 - JavaScript Completo ES6 - Object

Como repetido diversas vezes, tudo em JS é objeto, sendo assim, por herança, as propriedades seguintes estão disponíveis em todos os objetos criados a partir de funções construtoras:

  • constructor: retorna a função construtora do objeto;
  • hasOwnProperty('prop'): verifica se possui a propriedade e retorna true;
  • propertyIsEnumerable(): verifica se a propriedade é enumerável;
  • isPrototypeOf(obj): verifica se o prototype de um objeto é o protótipo do objeto passado; e
  • toString(): retorna o tipo do objeto como uma string. Para não conflitar com a função toString() (poderiam ter nomes diferentes) dos protótipos de Array, String entre outros é necessário utilizar o método call direto de Object: Object.prototype.toString.call(valor).
JS-0409 - JavaScript Completo ES6 - Object

Veja também:

Confira mais artigos relacionados

Este website utiliza cookies próprios e de terceiros a fim de personalizar o conteúdo, melhorar a experiência do usuário, fornecer funções de mídias sociais e analisar o tráfego. Para continuar navegando você deve concordar com nossa Política de Privacidade

Sim, eu aceito. Não, eu não aceito.