logo

Pilfunksjoner i JavaScript

Hva er pilfunksjonen?

Pilfunksjon {()=>} er kortfattet måte å skrive JavaScript-funksjoner på på kortere måte. Pilfunksjoner ble introdusert i ES6-versjonen. De gjør koden vår mer strukturert og lesbar.

Pilfunksjoner er anonyme funksjoner, dvs. funksjoner uten navn, men de er ofte tilordnet en hvilken som helst variabel. De kalles også Lambda funksjoner .

Syntaks:



const gfg = () =>{ console.log( 'Hei Geek!' ); }>

Eksemplene nedenfor viser hvordan Arrow-funksjonene fungerer i JavaScript.

Pilfunksjon uten parametere

Javascript
const gfg = () =>{ console.log( 'Hei fra GeekforGeeks!' ); } gfg();>

Produksjon
Hi from GeekforGeeks!>

Pilfunksjon med parametere

Javascript
const gfg = ( x, y, z ) =>{ console.log( x + y + z ) } gfg( 10, 20, 30 );>

Produksjon
60>

Pilfunksjon med standardparametere

Javascript
const gfg = ( x, y, z = 30 ) =>{ console.log( x + ' ' + y + ' ' + z); } gfg( 10, 20 );>

Produksjon
10 20 30>

Pilfunksjoner kan være asynkrone ved å sette prefiks for uttrykket med nøkkelordet async.

async param =>uttrykk async (param1, param2, ...paramN) => { statements }>

Fordeler med pilfunksjoner

  • Pilfunksjoner reduserer størrelsen på koden.
  • Retursetningen og funksjonsparentesene er valgfrie for enkeltlinjefunksjoner.
  • Det øker kodens lesbarhet.
  • Pilfunksjoner gir en leksikalsk denne bindingen. Det betyr at de arver verdien av dette fra det vedlagte omfanget. Denne funksjonen kan være fordelaktig når man har å gjøre med hendelseslyttere eller tilbakeringingsfunksjoner der verdien av dette kan være usikker.

Begrensninger for pilfunksjoner

  • Pilfunksjoner har ikke prototype-egenskapen.
  • Pilfunksjoner kan ikke brukes med det nye nøkkelordet.
  • Pilfunksjoner kan ikke brukes som konstruktører.
  • Disse funksjonene er anonyme og det er vanskelig å feilsøke koden.
  • Pilfunksjoner kan ikke brukes som generatorfunksjoner som bruker nøkkelordet yield for å returnere flere verdier over tid.

Støttede nettlesere

  • Chrome 45 og nyere
  • Kant 12 og over
  • Firefox 22 og nyere
  • Opera 32 og nyere
  • Safari 10 og nyere