Ecmascript6 ile Javascript dünyasına giren en önemli özelliklerden biri de, ilhamını CoffeScript’in arrow
fonksiyonlarından alan tabiri caizse ok fonksiyonu da diyebileceğimiz arrow functionlardır. Arrow functionlar
bizlere, klasik Javascripteki fonksiyon tanımı yaparken kullandığımız “function” komutunun yerine “=>” ibaresi ile daha yalın ve okunabilir fonksiyon tanımları yapmamıza olanak sağlar.
Basitçe her iki yapıyı inceleyecek olursak;
1 | // Regular Function |
Burada arrow fonksiyonumuzu bir değişkene atadık. Normalde arrow fonksiyonlar anonim yani isimsiz fonksiyonlardır. Gerektiği zaman direkt kullanıldığı gibi (IIFE), bir değişkene atanarak da kullanabiliriz.
1 | // IIFE fonksiyon yapısı ile arrow fonksiyonunun direkt kullanımı |
Verilen iki parametreyi birleştirip geri döndüren bir fonksiyonu arrow fonksiyon kullanarak yazalım;
1 | const isimGetir = (isim,soyisim) => { |
Arrow fonksiyonların regular fonksiyonlardan ayıran en önemli özelliklerden bir tanesi de kendi “this” değerine sahip olmamalarıdır. Yani daha açık bir ifade ile bir fonksiyondan nesne üreteceksek, ardından o nesneye ait bir metot tanımlamıssak ve bunu bir arrow fonksiyon ile yazdıysak, içinde kullanılan this anahtar sözcüğü o arrow fonksiyonunu kapsayan ana yürütücü fonksiyonun this değerini kullanır.
1 | function fonk1() { |
Peki bu durum normalde regular fonksiyonlarda nasıl diye sorarsak, her bir fonksiyon oluşturulduğu an kendi this değerini tanımlar. Bu durumda aynı örnek üzerinden gidecek olursak “isimYaz” adlı fonksiyon arrow fonksiyon olmasaydı kendi this değerini tanımlayacak ve üstteki değişkene ulaşamayarak undefined döndürecekti.
1 | function fonk1(isim) { |
Daha fazlası için: - Arrow functions - JavaScript | MDN
Comments