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

248
Visualizações
Javascript: método de objeto: ¿por qué necesito paréntesis?

Estoy aprendiendo javascript y me he topado con un problema que no entiendo. ¿Alguien podría explicarme por qué en el método compareDNA necesito usar paréntesis mientras uso this.dna y en el método anterior funciona bien?

 // Returns a random DNA base const returnRandBase = () => { const dnaBases = ['A', 'T', 'C', 'G']; return dnaBases[Math.floor(Math.random() * 4)]; }; // Returns a random single stand of DNA containing 15 bases const mockUpStrand = () => { const newStrand = []; for (let i = 0; i < 15; i++) { newStrand.push(returnRandBase()); } return newStrand; }; function pAequorFactory(specimenNum, dna){ return { specimenNum, dna, mutate(){ let i = Math.floor(Math.random() * 15) let newGene = returnRandBase() while (this.dna[i] === newGene){ newGene = returnRandBase() } this.dna[i] = newGene return this.dna }, compareDNA(object){ let counter = 0 for(let i = 0; i < this.dna().length; i++){ if(this.dna()[i] === object.dna()[i]){ counter++ } } let percentage = counter / this.dna().length * 100 return `Specimen number ${this.specimenNum} and specimen number ${object.specimenNum} have ${percentage}% of DNA in common.` }, } } let aligator = pAequorFactory(1, mockUpStrand) let dog = pAequorFactory(2, mockUpStrand) console.log(aligator.compareDNA(dog)) console.log(dog.dna().length)

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

0

El problema es que el dna que se pasa como argumento es una función, por lo que se convierte en un método del objeto devuelto y debe llamarse con .dna() . Sin embargo, esto parece un error; en realidad, se debería haber pasado una matriz:

 let aligator = pAequorFactory(1, mockUpStrand()) // ^^ let dog = pAequorFactory(2, mockUpStrand()) // ^^

Luego puede acceder a .dna[i] o .dna.length como de costumbre.

Si no hace eso, dog.dna() devuelve un ADN diferente cada vez, lo que no tiene sentido.

usando this.dna y en el método anterior funciona bien?

En realidad, no lo hace. dog.mutate() devuelve una función con una sola propiedad de entero. Se supone que debe devolver una matriz realmente.

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