const pessoa = {//notação literal
nome: 'Rebeca',
idade: 2,
peso: 13
}
console.log(Object.keys(pessoa));//todas as chaves do objeto pessoa
console.log(Object.values(pessoa));//valores do objeto
console.log(Object.entries(pessoa));//array com todos os subArray com as chave e valor
console.log();
Object.entries(pessoa).forEach(e =>{//percorre o array de pessoa
console.log(`${e[0]}: ${e[1]}`);//chave e valor
})
console.log();
Object.entries(pessoa).forEach(([chave, valor]) =>{
console.log(`${chave}: ${valor}`);
})
console.log();
Object.defineProperty(pessoa, 'dataNascimento',{//define a propriedade para ser ou não alterada
enumerable: true,//true para alterar
writable: false,//true para alterar
value: '01/01/2019'
})
pessoa.dataNascimento = '01/01/2017'
console.log(pessoa.dataNascimento);
console.log(Object.keys(pessoa));
//Object.assingn (ECMScript a partir de 2015)
console.log();
const dest = {a: 1}
const o1 = {b: 2}
const o2 = {c: 3, a: 4}
const obj = Object.assign(dest, o1, o2)
console.log(obj);
Object.freeze(obj)//congela o objeto
obj.c = 1234//nao vai alterar esse valor
console.log(obj);