Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

1.4K
Visualizações
¿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 Respostas
Responde à pergunta

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 Relatório

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 Relatório

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 Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda