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

272
Vistas
Comprender el prototipo creado a partir de una instancia `nueva`

De los new documentos de MDN dice:

La nueva palabra clave hace lo siguiente:

  1. Crea un objeto JavaScript simple y en blanco.
  2. Agrega una propiedad al nuevo objeto ( __proto__ ) que se vincula con el objeto prototipo de la función constructora

Entonces, ¿cómo se define exactamente el prototipo? Mi pensamiento fue que sería:

  • Si está en una función (sin usar la palabra clave class ), buscaría si hay un [Constructor].prototype declarado en algún lugar y lo usaría, y si no, recurriría a... (¿no está seguro?). Como ejemplo, si el constructor se llama Range , buscaría si Range.prototype está definido y lo usaría como prototipo.
  • Si está en una class , usaría todos los métodos o propiedades para construir el prototipo.

¿Es más o menos una comprensión correcta, o qué me podría estar perdiendo?

about 4 years ago · Juan Pablo Isaza
1 Respuestas
Responde la pregunta

0

No importa si el constructor se declara con sintaxis de clase o como una function , el objeto <constructor.prototype> siempre existirá, incluso si nunca se lo menciona explícitamente. Ejemplo:

 function FooFn() {} class FooClass{} console.log(FooFn.prototype); console.log(FooClass.prototype);

Estos objetos .prototype son objetos simples que se convierten en el prototipo interno de las instancias creadas con el new . También tienen una propiedad .constructor que apunta al constructor (la función/clase utilizada para crear una instancia).

Entonces no es exactamente eso

buscaría para encontrar si hay un [Constructor].prototype declarado en algún lugar y lo usaría

sino que dicha propiedad siempre existe en funciones y clases, y cuando se crea una instancia con new , el objeto dentro de la propiedad .prototype se convierte en el prototipo interno de la instancia.

Si está en una clase, usaría todos los métodos o propiedades para construir el prototipo.

No exactamente: una clase es principalmente azúcar sintáctica para una función. Qué hace esto:

 class Foo { method() { console.log(); } }

es casi exactamente (pero no del todo) lo mismo que

 function Foo() {} Foo.prototype = function method() { console.log(); }

Los métodos se asignan al objeto .prototype de la clase cuando ocurre la declaración de la clase, no cuando se crea una instancia.

 class X { xMethod() { } } console.log(X.prototype); console.log(X.prototype.hasOwnProperty('xMethod')); console.log(X.prototype === (new X).__proto__);

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