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

1.4K
Views
¿Son las funciones de flecha más rápidas (más eficaces, más livianas) que la declaración de función independiente ordinaria en v8?

Hago esta pregunta porque mi colega y yo tenemos una disputa sobre el estilo de codificación porque él prefiere la declaración de la función de flechas:

 const sum = (a, b) => a + b;

Y prefiero la declaración de función independiente de estilo antiguo:

 function sum(a, b) { return a + b; }

Mi punto es que el código en estilo antiguo es más legible y puede distinguir más claramente las funciones y las declaraciones de variables. Su punto es que el código con funciones de flecha simplemente se ejecuta más rápido.

¿Sabe algo sobre las penalizaciones de rendimiento reales (en v8) cuando usa la declaración de función independiente de estilo antiguo en lugar de funciones de flecha? ¿Es que las penas realmente existen?

over 4 years ago · Santiago Trujillo
3 answers
Answer question

0

Desarrollador V8 aquí. Las funciones de flecha son (en su mayoría) solo "azúcar sintáctico" para las declaraciones de funciones convencionales. No hay diferencia de rendimiento.

over 4 years ago · Santiago Trujillo Report

0

Lo siguiente muestra que:

  1. Hay una penalización por ir primero (ya sea tradicional o gordo)
  2. No hay una diferencia perceptible en Chrome

 function goFat() { for (var i = 0; i < 1000000; i++) { var v = ()=>{}; v(); } } function goTraditional() { for (var i = 0; i < 1000000; i++) { var v = function() {}; v(); } } function race() { var start = performance.now(); goTraditional(); console.log('Traditional elapsed: ' + (performance.now() - start)); start = performance.now(); goFat() console.log('Fat elapsed: ' + (performance.now() - start)); start = performance.now(); goTraditional(); console.log('Traditional elapsed: ' + (performance.now() - start)); start = performance.now(); goFat() console.log('Fat elapsed: ' + (performance.now() - start)); console.log('------'); }
 <button onclick="race()">RACE!</button>

over 4 years ago · Santiago Trujillo Report

0

Creo que las funciones de flecha en las propiedades de clase pueden causar algún problema de rendimiento. Aquí hay un ejemplo :

 class Car { setColor = (color) => { this.color = color; } constructor() { this.color = ''; this.getColor = () => { return this.color; }; } printCarColor() { console.log(this.color); } } var c = new Car(); console.log(c);

Si echamos un vistazo a la variable c, notará que la función setColor y getColor se crean completamente nuevas para cada instancia , y cada nueva copia se coloca en cada instancia, mientras que la función printCarColor reside en el prototipo.

Si desea mil instancias para que cada una pueda hacer referencias de métodos de contexto fijo, necesitará mil métodos separados (no uno compartido) y, por supuesto, tendrá que almacenar cada uno de esos mil métodos separados en las instancias mismas, derrotando así todo el punto del prototipo único compartido.

over 4 years ago · Santiago Trujillo 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!