Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

299
Views
TypeError: no se pueden leer las propiedades de undefined (leyendo 'a')

Estaba probando clases y esta palabra clave en Javascript, y escribí este código:

 class p{ constructor(p,a){ p = pp; a = pa; }; }; const c = new p(p="1st aspect",a="2nd aspect"); console.log(this.c);

Y obtuve este error:

 Cannot read properties of undefined (reading 'a')

No sé si esto es compatible con las clases o si pasé los argumentos incorrectos, ¿alguien puede ayudarme allí?

about 4 years ago · Juan Pablo Isaza
3 answers
Answer question

0

La sintaxis para crear una clase es incorrecta. No necesita pasar los nombres de los parámetros. Solo usa

 const c = new p("1st aspect","2nd aspect");

Y no es una buena práctica usar la primera letra en minúsculas como nombre de clase. Use P en lugar de p . Y this.c está mal. solo imprime

 console.log(c);
about 4 years ago · Juan Pablo Isaza Report

0

Es solo que la sintaxis que está utilizando para crear una instancia de clase no es correcta en términos de intentar usar los nombres de argumento proporcionados ("p =", "a ="), y puede haber algunos errores en la construcción de su clase. Creo que puede haber estado tratando de hacer algo como esto:

 class p { // These are ordered arguments, not named arguments constructor(p,a) { // Save the value of p and a on the class instance this.p = p; this.a = a; }; }; // Create a new p class instance with the arguments in order const classInstance = new p("1st aspect", "2nd aspect");
about 4 years ago · Juan Pablo Isaza Report

0

El código debería verse así

 class P { constructor(p, a){ this.p = p; this.a = a; }; }; const c = new P("1st aspect", "2nd aspect"); console.log(c); // <- just print c

Puedo ver que estás mezclando algunos conceptos y confundiéndote, te sugiero que leas los documentos oficiales de MDN , aprenderás sobre las clases paso a paso.

Como extra, notará que los nombres de las clases se nombran usando PascalCase . Esto se debe a que, al seguir la convención de nomenclatura, leerá y entenderá el código de otras personas mucho más rápido (e incluso el suyo).

¡Espero que esto haya ayudado!

about 4 years ago · Juan Pablo Isaza Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!