JavaScript’te “Arrow Function” Kullanımı

JavaScript’te arrow function, ES6 (ECMAScript 2015) ile birlikte kullanıma giren fonksiyon tanımlama yöntemidir.

JavaScript’te “Arrow Function”

Şekli gereği “fat arrow” olarak da adlandırılan arrow function, () => şeklinde gösterilmektedir. En belirgin özelliği ise daha kısa bir söz dizimine sahip olmasıdır. Zira daha karmaşık fonksiyon kullanımında “arrow” fonksiyonları kodun daha temiz ve okunaklı olmasını sağlar.

Arrow fonksiyonun sahip olduğu avantajlardan biri de fonksiyon oluşturmamız gerektiğinde kullanılan “function” anahtar kelimesini yazmamızın gerekmemesidir.

Eğer “arrow” fonksiyonunun gövdesi tek satırlık bir bloktan oluşuyorsa küme parantezlerini { } yazmaya gerek yoktur. Aşağıdaki örneği inceleyiniz:

Yukarıdaki örnekte fark edileceği üzere aynı fonksiyon “arrow” fonksiyonu şeklinde yazıldığında “return” ifadesi kullanılmamıştır. Zira fonksiyonun içinde tek bir ifade yazmak yeterliyse, otomatik olarak döndürüleceği için tekrardan bir “return” yazmaya gerek yoktur. Bu durum “implicit return” olarak adlandırılmaktadır.

Her ne kadar bazı programcılar “arrow fonksiyonları” bir tür syntactic sugar olarak görse de bu fonksiyonlar normal bir fonksiyondan biraz farklı çalışmaktadır:

  • Arrow fonksiyonları “this”, “arguments”, “super” veya “new.target” anahtar kelimelerine binding yapmaz. Haliyle “arrow” fonksiyonlarını nesne metodu olarak tanımlamak “undefined” döndürecektir. Bakınız:

Yukarıdaki örnekte, arrow fonksiyonunun içindeki this anahtar kelimesi, fonksiyonun tanımlandığı yere bağlıdır ve bundan dolayı undefined değeri alır. Haliyle, Hello, my name is undefined. mesajı görüntülenir.

Bu durum “this” nedeniyle olmaktadır. Normal fonksiyonlardan farklı olarak, arrow fonksiyonlarındaki “this”, fonksiyonun tanımlandığı yerdeki “this” değerini alır (lexical scope). Bu durum, özellikle “callback” fonksiyonları ve “event handlerları” (olay işleyicileri) ile çalışırken genellikle istenen bir davranıştır.

Onun dışındaki durumlarda, arrow fonksiyonlarını kullanmak doğru bir yöntem değildir. Bu durumda sayHello fonksiyonumuzu, normal fonksiyon oluşturma kuralları ile tanımlamamız gerekir:

Arrow Fonksiyonları ile Parametre Kullanımı

“Arrow” fonksiyonları sahip oldukları parametre sayısına bağlı olarak farklı yazılış alternatiflerine sahiptir. Eğer “arrow” fonksiyonları tek bir parametre almışsa bu parametreyi parantez içine almasına gerek yoktur. Ancak, bir fonksiyon parametre almıyorsa veya birden fazla parametre alıyorsa parantezler gereklidir. Ayrıca her bir parametre arasına da virgül koyulur. Aşağıdaki örneği inceleyiniz:

İlgili Makaleler

Bir yanıt yazın

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

Başa dön tuşu