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

164
Views
La palabra clave 'esta' en la función de prototipo de matriz no está definida

Me gustaría escribir mi propia función para cada matriz y estoy usando la palabra clave prototype .

El problema es que cuando creé el siguiente script:

 Array.prototype.test = () => {console.log('length: ',this.length)}; const result = [1,2,3].test();

Si lo ejecuto en la consola de Chrome obtengo el siguiente resultado:

 length: 0

Si lo ejecuto en mi máquina local con node script.js obtengo el siguiente resultado:

 length: undefined

¿Por qué this.length es diferente y por qué no refleja la longitud de la matriz en la que estoy llamando a la función?

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

0

Eso es porque está usando la sintaxis de la función de flecha. La función de flecha no posee un contexto this , por lo que "apunta" al contexto global.

La solución es sencilla:

 Array.prototype.test = function() {console.log('length: ', this.length)}; const result = [1,2,3].test(); // length: 3

Al agregar explícitamente la function ahora, su contexto (esto) apunta al objeto que llama a la función.

about 4 years ago · Juan Pablo Isaza Report

0

Está utilizando una sintaxis de arrow function .

Cuando se llama a la palabra clave "this", vuelve al objeto global.

En el browser , vuelve a caer en el window object y, por esta 😉 razón, devuelve 0 longitud.

Pero en el global node object , la longitud no está definida.

En su lugar, utilice la palabra clave function para obtener el contexto Array.prototype .

 Array.prototype.test = function(){console.log('length: ',this.length)};
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!