Método Object.defineProperties()


Esse método define mais de uma propriedade para prevenir alterações de valores em apenas alguma propriedade de um objeto.

Exemplo

function Produto(nome, preco, estoque) {
  this.nome = nome;
  this.preco = preco;
  this.estoque = estoque;
 
  Object.defineProperties(this, {
    nome: {
      enumerable: true,
      value: nome,
      writable: false,
      configurable: false
    },
    estoque: {
      enumerable: true,
      value: estoque,
      writable: false,
      configurable: false
    }
  })
}
 
const produto = new Produto("Camiseta", 20, 3);
 
console.log(produto); // Produto { nome: 'Camiseta', preco: 20, estoque: 3 }

Referências