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

147
Views
¿Cuál es la diferencia entre el prototipo de la clase N y la propia clase N en ECMAScript?

Antes de marcar mi pregunta como un duplicado de "¿Cuál es el prototipo es JavaScript?" tenga en cuenta que esta pregunta se centra en los prototipos de las clases ES6. Aunque la concepción de la cadena prototipo está involucrada, las implementaciones del mecanismo de herencia en ES5 están fuera de tema.

Desafortunadamente, la explicación general sobre la herencia y la cadena de prototipos no da una respuesta clara a mi pregunta. Por el contrario, crea nuevas preguntas.

No me importaron los prototipos de las clases hasta que no intenté crear el decorador (en la propiedad de clase no estática). En el caso de campos de propiedad de clase no estáticos, el primer parámetro de la función decoradora es el prototipo de la clase objetivo.

Desde el punto de vista de la explicación general, el prototipo de la clase objetivo es completamente inútil (al menos no entiendo qué hacer con él, incluso sé que este prototipo está relacionado con alguna clase), lo que parece ser valioso es la clase sí mismo.

 export function VueReactiveField( classPrototype: unknown, // What it this? What we can do with it? fieldName: string ): void { }

Además, el prototipo ha duplicado la complejidad. Si esta ecuación tenemos para las variables ahora:

  1. Clase de destino (todo está claro)
  2. La instancia de la clase de destino (todo está claro)
  3. El prototipo de la clase objetivo (no entiendo su esencia)
  4. El prototipo de una instancia de la clase objetivo (no entiendo su esencia)
about 4 years ago · Juan Pablo Isaza
1 answers
Answer question

0

Tenga en cuenta que la class , principalmente, es solo sintaxis para construir funciones de constructor y los objetos que asignan como prototipos a las instancias. No es un tipo diferente de herencia prototípica de las funciones constructoras. Es una forma diferente de escribirlos . (Además, ahora hay algunas características en la sintaxis de class que no están disponibles si escribe funciones de constructor de la manera anterior, como campos privados). Cubro esa parte de las cosas con más detalle en esta respuesta .

Por lo general , cuando alguien dice "el prototipo de la clase X", se refiere al objeto en la propiedad X.prototype . Podría decirse que esa frase no es del todo correcta (o al menos un poco imprecisa), pero es común.

Digamos que tienes:

 class Parent { } class Child extends Parent { }

Eso establece dos relaciones de herencia:

  1. El objeto Child.prototype hereda de Parent.prototype . De esa forma, Child.prototype hereda las propiedades prototípicas (si las hay) y los métodos (mucho más comunes) que proporciona Parent.prototype .

  2. La función Child hereda de la función Parent (sí, en serio). De esa manera, Child hereda cualquier característica estática que defina Parent .

P.ej:

Niño.prototipo −−−−> Padre.prototipo −−−−> Objeto.prototipo

Hijo −−−−−−−−−−−−−−> Padre −−−−−−−−−−−−−−> Función.prototipo

Ejemplo:

 class Parent { parentInstanceMethod() {} static parentStaticMethod() {} } class Child extends Parent { } console.log(Object.getPrototypeOf(Child.prototype) === Parent.prototype); // true console.log(Object.getPrototypeOf(Child) === Parent); // true console.log(typeof Child.prototype.parentInstanceMethod); // "function" console.log(typeof Child.parentStaticMethod); // "function"

¿Cuál es la diferencia entre el prototipo de la clase N y la propia clase N en ECMAScript?

Depende de si te refieres al objeto en N.prototype o al prototipo real de la función N

  • Si te refieres a N.prototype : N es una función constructora, pero N.prototype es el objeto que se asignará como prototipo de las instancias de N creadas a través de la new N

  • Si quiere decir que el prototipo real de N : N es una función de constructor, pero su prototipo es el constructor de clase del que se deriva (o Function.prototype , si es una clase base).

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!