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

174
Views
¿Alguna vez se define un constructor en el objeto mismo?

¿Hay algún caso en el que la propiedad del constructor se defina en un objeto/función/clase en sí mismo, o solo aparece en el prototype ? Por ejemplo:

 let a = new Array(); console.log(a.hasOwnProperty('constructor'), a.constructor); // false -- constructor not defined on Array, but Array.prototype let f = function(){}; console.log(f.hasOwnProperty('constructor'), f.constructor); // false -- constructor not defined on function, but function.prototype

about 4 years ago · Juan Pablo Isaza
2 answers
Answer question

0

Sería técnicamente posible que tal cosa ocurra, pero es un olor a código.

 function Klass(){ this.constructor = Klass; } const k = new Klass(); console.log(k.hasOwnProperty('constructor'), k);

(También puede verlo cuando alguien extiende incorrectamente una clase de función )

Se espera que las instancias de objetos tengan una propiedad .constructor en su prototipo , no directamente en la instancia. Si la propiedad está directamente en la instancia, eso causará problemas cuando alguien intente usar uno de los métodos comunes para iterar sobre propiedades propias y encuentre un constructor allí.

Otra razón por la que debería estar en el prototipo y no en el objeto mismo es para aprovechar la herencia prototípica. Si una propiedad puede existir en un objeto, en el prototipo, es mejor hacerlo que duplicar esa propiedad en todas partes, para cada instancia. Y la propiedad del constructor ya está automáticamente en el prototipo, por lo que no debería haber necesidad de alterarla de todos modos.

Por razones similares, los métodos de clase suelen estar en el prototipo de clase cuando es posible, en lugar de duplicarse para cada instancia individual. Es decir, tiene todas las instancias que heredan de un prototipo con el método, en lugar de que todas las instancias tengan su propio método de propiedad. Es decir, no es tan bueno tener

 class Klass { constructor() { this.method = () => console.log('method'); } } const k = new Klass(); k.method();

con el método duplicado para cada instancia, cuando en su lugar puede hacer

 class Klass { method() { console.log('method'); } } const k = new Klass(); k.method();

y tenerlo solo en el prototipo.

about 4 years ago · Juan Pablo Isaza Report

0

Mire el documento de Object.prototype.hasOwnProperty .

A diferencia del operador in, este método no comprueba la propiedad especificada en la cadena de prototipos del objeto.

La propiedad del constructor solo existe en Object.prototype . Y la propiedad prototype solo existe en el constructor de objetos.

ingrese la descripción de la imagen aquí

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!