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

158
Visualizações
¿Construir un objeto que tenga funciones miembro a partir de un objeto que no tenga ninguna función miembro cuyas propiedades sean las mismas?

Estoy tratando de crear una aplicación de JavaScript con una base de datos de documentos que pueda almacenar y recuperar datos de objetos (proporcionados como API) sin miembros de funciones.

Ahora tengo una clase que tiene muchas propiedades y algunas funciones como prototipo.

 Project: function(){ this.a= 'abc'; this.f = function(){ console.log(this.a); } } //object from the databse p0 = { a: 'abc'; }

Quiero convertir un objeto simple en un objeto con función de miembro utilizable.

Cuando intento algo como esto, no funcionará:

 // It won't work: // for it needs a map that have many properties such as writable etc. var pobj = Object.create(new Project(), p0);

Traté de buscar esta pregunta con diferentes palabras clave en Internet, pero no encontré ninguna relacionada.

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

0

La función que probablemente quiera usar es Object.assign .

Entonces puede usar Object.create para crear una instancia de la clase (usando el prototipo), luego asignar los valores de los datos a la nueva instancia y luego llamar al constructor (asegúrese de no anular los valores).

 function Project() { if (this.foo === undefined) this.a = 'foobar'; return this; } Project.prototype.print = function() { console.log(this.foo); }; var data = { foo: 'bar' }; var obj = Object.create(Project.prototype); // empty instance obj = Object.assign(obj, data); // copy data obj = obj.constructor(); // start constructor obj.print();

Alternativamente, podría crear una nueva instancia usando el new operador y luego asignar los datos.

 function Project() { this.a = 'foobar'; return this; } Project.prototype.print = function() { console.log(this.foo); }; var data = { foo: 'bar' }; var obj = Object.assign(new Project(), data); obj.print();

Nota no relacionada Por lo general, es una buena idea declarar funciones públicas que no requieren cierre fuera del cuerpo de la función usando class.prototype.functionName = function(){...}

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