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

150
Vistas
Por qué obtengo "Object.defineProperty llamado en no objeto" cuando uso una función vinculada como primer parámetro en Object.defineProperty

Estoy tratando de vincular la palabra clave this de una función y usar la función como con la notación de punto de objeto (ya que las funciones también son objetos). Descubrí usando el objeto literal 'get' para hacer algo como: myFunction.whatever (en lugar de myFunction().whatever).

El código es:

 let template = {name: "William"}; let aux = function(){} callTo = aux.bind(template); Object.defineProperty(callTo.prototype, "scream", { get: function() { console.log(this); return "Hi, " + this.name; } }); myObj = new callTo(); myObj.scream;

Esto provoca el error: " Object.defineProperty llamado en no objeto ". Sin embargo, si enlazo cada propiedad definida con "get", funcionará correctamente.

 let template = {name: "William"}; let callTo = function(){} Object.defineProperty(callTo.prototype, "scream", { get: function() { console.log(this); return "Hi, " + this.name; }.bind(template) }); myObj = new callTo(); myObj.scream; // Outputs Hi William

El enfoque de trabajo funciona, pero me obliga a agregar un enlace () al final de cada propiedad. Entonces la pregunta es:

¿Por qué falla el primer código?

about 4 years ago · Juan Pablo Isaza
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