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

130
Views
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
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!