Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

153
Vistas
¿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 Respuestas
Responde la pregunta

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 Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda