Object

Introdução

Objeto é um dado que possui uma estrutura de chave e valor que define caracteristicas (propriedades) e funcionalidades (métodos).
É uma Lista Nomeada, conhecido também como: Dicionário de dados.
Deve ser declarado entre um par de chaves {}, e os itens devem ser separados por vírgula, e cada item deve conter uma chave e um valor separados por dois pontos.
Cada item da lista pode ser de um tipo de dado diferente.
Podem ser atribuídos à variáveis.


                        // Declaração de um objeto
                        let obj = {
                            name: 'Heviane',                    // Característica
                            lastName: 'Bastos',                 // Característica
                            age: 39,                            // Característica
                            sum: function sum(a,b){return a+b}, // Funcionalidade 
                            log: () => console.log('Hello')     // Funcionalidade
                        }

                        // Add a new property 
                        obj.gender = 'F';

                        // Return properties and values
                        console.log(Object.keys(obj));
                        console.log(Object.values(obj));
                    

Desestruturação de objetos

Atribuir as propriedades dos objetos à variáveis para facilitar a leitura e manipulação dos dados.


                        // Sem desestruturação (ES5)
                        var name = obj.name;
                        var lastName = obj.lastName;
                        var age = obj.age;
                        var sum = obj.sum;
                        var log = obj.log;

                        // Com desestruturação (ES6)
                        var {name, lastName, age, sum, log} = obj;
                    

Enhanced object Literals

Forma menos verbosa de escrever propriedades e métodos de objetos literais.

ES5 - Escrever objetos literais

Declaração de propriedades e métodos.

                            // Exemplo com variável
                            var name = 'Heviane';
                            var obj = { name: name };   
                            console.log(obj.name);

                            // Exemplo com função
                            var obj = { sum: function sum(a, b){ return a + b } }; // Função Regular Nomeada
                            var obj = { sum: function(a, b){return a + b } };      // Função Regular Anônima
                            console.log(obj.sum(1, 2));
                        
Declaração de propriedades de forma dinâmica.

                            var obj = { test: 'testing...' };

                            var prop1 = 'Propriedade 1';
                            obj[prop1] = 'Prop1 Value';

                            var prop2 = 'Propriedade 2'
                            obj[prop2 + '-concat'] = 'Prop Value';  // Mesclar 
                        
Necessário primeiro criar o objeto, para depois realizar a atribuição da propriedade usando colchetes [].

ES6 - Escrever objetos literais

Declaração de propriedades e métodos.
Incluído Short Hand. O lado direito pode ser omitido se usar mesmo nome.

                            // Exemplo com variável
                            var name = 'Heviane';
                            var obj = { name };
                            console.log(obj.name);

                            // Exemplo com função
                            var obj = { sum(a, b){ return a + b } }; // Função Regular Nomeada (Omiti "function")
                            console.log(obj.sum(1, 2));
                        
Declaração de propriedades de forma dinâmica.

                            var prop1 = 'Propriedade 1';
                            var obj = { [prop1 + '-concat']: 'Prop Value' };  // Mesclar
                        
Agora pode-se atribuir a propriedade diretamente na declaração do objeto.