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

1.4K
Vistas
¿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 Respuestas
Responde la pregunta

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 Denunciar

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 Denunciar

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 Denunciar
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