Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

351
Visualizações
ES6: captadores y definidores de funciones constructoras

¿Por qué no puedo configurar getters y setters de esta manera dentro de la función Constructor?

 function zConstructor(firstName, lastName) { this.firstName = firstName; this.lastName = lastName; set fullname(text) { const parts = text.split(' '); this.firstName = parts[0]; this.lastName = parts[1]; } get fullname() { return this.firstName + ' ' + this.lastName; } }

Esta forma de obtener y establecer solo funciona en clases y funciones de fábrica. ¿Cuál es la razón?

¡Gracias!

about 4 years ago · Juan Pablo Isaza
2 Respostas
Responde à pergunta

0

Una forma adecuada de hacer esto es:

 function zConstructor(firstName, lastName) { this.firstName = firstName; this.lastName = lastName; } zConstructor.prototype = { set fullname(text) { const parts = text.split(" "); this.firstName = parts[0]; this.lastName = parts[1]; }, get fullname() { return this.firstName + " " + this.lastName; }, };

Su código no funciona porque los establecedores y captadores son significativos solo para Objetos.

about 4 years ago · Juan Pablo Isaza Relatório

0

Puede hacerlo, pero una función constructora es solo una función, y la sintaxis de los bloques de código ordinarios no incluye la creación de funciones setter y getter; no hay forma de dar sentido a lo que se supone que significa su código, en lo que respecta al analizador.

Lo que puede hacer es usar Object.defineProperties() para agregar las propiedades. O, probablemente mejor, es crearlos en el prototipo directamente (nuevamente, con Object.defineProperties() ) o usando una declaración de class :

 function zConstructor(firstName, lastName) { this.firstName = firstName; this.lastName = lastName; Object.defineProperties(this, { fullname: { set: function(text) { const parts = text.split(' '); this.firstName = parts[0]; this.lastName = parts[1]; }, get: function() { return this.firstName + ' ' + this.lastName; } } }); }
about 4 years ago · Juan Pablo Isaza Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda