Sözdizimi dışında ikisi arasında ek farklılıklar vardır.

Hemen hemen her modern programlama dili gibi, JavaScript de kodun yeniden kullanılabilirliğine olanak tanıyan işlevler oluşturmanın yollarını sunar. Dile aşina olmayanlar için JavaScript'te işlev bildirmenin iki farklı yolu vardır.

aslen, işlev anahtar kelime kullanıldı ve daha sonra ok sözdizimi oluşturuldu. Kapsam erişilebilirliği açısından farklılık gösterse de, hem function anahtar sözcüğü hem de ok sözdizimi benzer sonuçlar oluşturur.

İkisi arasında ayrım yapamamak sorunlara neden olabilir ve yanlış kullanıma yol açabilir. Modern JS geliştiricisinin, her işlev bildiriminin kapsamı ve görünürlüğü nasıl etkilediğini anlaması bir zorunluluktur.

JavaScript'in Ok İşlevleri Nelerdir?

JavaScript'in ok işlevleri varsayılanı kullanmayan işlevleri tanımlamanın alternatif bir yoludur. işlev anahtar kelime:

işlevgünlükMesaj(İleti) {
konsol.log (mesaj);
}

sabit günlükMesaj = (İleti) => {
konsol.log (mesaj);
}

sabit günlükMesaj = İleti =>konsol.log (mesaj);

instagram viewer

Yukarıda aynı mesajın üç farklı şekilde yazıldığını görebilirsiniz. İlki, normal işlev bildirimi yöntemini kullanır. Sonraki ikisi, ES6'nın ok işlevlerini kullanmanın iki yolunu gösterir.

JavaScript, ilk olarak ECMAScript 2015 standartlarının yayınlanmasıyla birlikte ok işlevi sözdizimini benimsemiştir. Ok işlevleri, hızlı bir şekilde işlev oluşturmanın temiz ve özlü bir yolunu ve JavaScript'te uzun süredir devam eden çeşitli kapsam sorunlarına ilginç bir çözüm sunuyordu.

Bu özellikler, ok işlevlerini birçok geliştirici arasında hızla popüler hale getirdi. Modern bir JavaScript kod tabanı arayan programcılar, normal işlevler kadar ok işlevleri de bulabilirler.

Ok İşlevlerinin JavaScript'teki Normal İşlevlerden Farkı Nedir?

İlk bakışta, ok işlevleri, function anahtar sözcüğü kullanılarak bildirilen işlevlerden çok farklı görünmüyor. Sözdizimi dışında, her ikisi de kodun herhangi bir yerinden çağrılabilen yeniden kullanılabilir bir dizi eylemi kapsar.

İkisi arasındaki benzerliklere rağmen, geliştiricilerin bilmesi gereken bazı farklılıklar vardır.

Kapsam Farkı

JavaScript'te düzenli bir işlev bildirildiğinde, bu işlev, kendi kapsamını oluşturan bir kapatma işlevi görür. Bu, aşağıdakiler gibi belirli özel işlevler kullanılırken soruna neden olabilir: setTimeout Ve setInterval.

ES6'dan önce, öğeleri geri aramalarda kullanılmak üzere daha yüksek kapsam düzeylerine çıkaran çok sayıda geçici çözüm vardı. Bu hack'ler işe yaradı, ancak genellikle anlaşılması zordu ve bazı değişkenlerin üzerine yazılmasıyla ilgili sorunlara neden olabiliyordu.

Ok işlevleri, her iki sorunu da basit ve zarif bir şekilde çözdü. Bir geri aramanın parçası olarak bir ok işlevi kullanıldığında, çağrıldığı işlevle aynı kapsama erişime sahiptir.

Bu, orijinal olayın çağrıldığı bağlama erişimi kaybetmeden işlevlerin geri arama olarak kullanılmasına izin verdi. Bu prensibi uygulamalı olarak göstermek için basit bir test olarak, aşağıdaki gibi bir gecikmeli mesajlaşma işlevi ayarlayabilirsiniz:

işlevgecikmeli mesaj(mesaj, gecikme) {

setTimeout(işlev(İleti) {
konsol.log (mesaj);
}, gecikme);

}

Gecikmeli Mesaj("Selam Dünya", 1000);

İşlev basittir, kabul edilir İleti Ve gecikme milisaniye cinsinden. Gecikme geçtikten sonra, mesajı konsola kaydetmelidir. Ancak, kod çalıştırıldığında, Tanımsız iletilen mesaj yerine konsola kaydedilecektir.

Geri arama işlevi yürütüldüğünde kapsam değişir ve orijinal mesaja artık erişilemez. Mesajı kapatma içinden kullanmak, mesajın genel bir değişkene kaldırılmasını gerektirir, bu da geri aramadan önce üzerine yazılmasına neden olabilir.

Bir ok işlevi, bu sorun için uygun bir düzeltmedir. için ilk bağımsız değişkeni değiştirirseniz setTimeout, kapsam korunabilir ve işlevin kendisine iletilen mesaja erişimi olur. gecikmeli mesaj.

işlevgecikmeli mesaj(mesaj, gecikme) {

setTimeout(() => {
konsol.log (mesaj);
}, gecikme);

}

Gecikmeli Mesaj("Selam Dünya", 1000);

Şimdi, yürütüldüğünde, gecikmeli mesaj işlevi mesajı günlüğe kaydeder. Ek olarak, bu, birden çok iletinin farklı gecikmelerle sıraya alınmasına olanak tanır ve bunların tümü yine de doğru zamanda gerçekleşir.

Bunun nedeni, her seferinde gecikmeli mesaj kullanıldığında, dahili ok işlevinin kendi kopyasıyla kendi kapsamını oluşturur.

Kod Okunabilirliği

Ok işlevleri, geri aramalar olarak yararlı olsa da, kodu temiz ve öz tutmak için de kullanılır. Yukarıdaki bölümde, bir ok işlevi kullanmanın, ok işlevi kullanıldığında ne olacağını açıkça ortaya koyduğunu görebilirsiniz. gecikmeli mesaj fonksiyon denir.

İşlevler daha karmaşık hale geldikçe, biraz netliğe sahip olmak kodu çok daha okunabilir hale getirebilir. Nesneleri oluştururken bu, kısa işlevler eklerken kodu daha basit hale getirebilir:

sınıftezgah{
_sayım = 0;
artış = () => {
Bu._sayım += 1;
}
azalma = () => {
Bu._sayım -= 1;
}
saymak = () => {
geri dönmekBu._saymak;
}
}

izin vermek ct = yeni tezgah();

Nesne Yönelimli Programlamada Rol

JavaScript'in ok işlevleri, işlevsel programlamanın ayrılmaz bir parçası olmakla birlikte, nesne yönelimli programlama. Ok işlevleri, sınıf bildirimlerinde kullanılabilir:

sınıfsipariş Satır Öğesi{
_LineItemID = 0;
_Ürün = {};
_Adet = 1;

inşaatçı(ürün) {
Bu._LineItemID = kripto.randomUUID();
Bu._Ürün = ürün
}

changeLineItemQuantity = (yeni adet) => {
Bu._Miktar = yeniMiktar;
}
}

Bir sınıf bildirimi içindeki yöntemleri bildirmek için bir ok işlevi kullanmak, işlevin sınıf içindeki davranışını değiştirmez. Bununla birlikte, sınıfın dışında, diğer sınıflar tarafından kullanılmasına izin vererek işlevi ortaya çıkarır.

Düzenli işlevlere, çağrılmadan sınıf bildirimi dışında erişilemez. Bu, diğer sınıf bildirimlerinin bu işlevleri devralabilmesine rağmen, diğer sınıfları oluşturmak için bunlara doğrudan erişilemeyeceği anlamına gelir.

JavaScript'in Ok İşlevlerini Ne Zaman Kullanmalısınız?

JavaScript'in ok işlevleri, geliştiricilere bir işlevin hangi kapsama erişebileceği konusunda çok daha fazla kontrol sağlayan inanılmaz derecede güçlü bir özelliktir. Bir geri aramanın ne zaman ebeveyninin kapsamına erişmesi gerektiğini ve ne zaman olmaması gerektiğini bilmek, bir geliştiricinin hangi bildirim türünü kullanacağını belirlemesine yardımcı olabilir.

Ok işlevleri, programcılara, kapsamın gizlenmesi gereken kısımlarını açığa çıkarmadan geri arama yazmaları için açık ve öz bir yol sağlar. Ayrıca JavaScript'te işlevsel programlamayı etkinleştirerek temiz ve basit kompozisyonların oluşturulmasına izin verirler.

JS geliştiricileri, iki sözdizimi arasındaki farkların farkında olmalı ve işlevlerini bildirirken hangi sözdiziminin uygun olduğuna dikkat etmelidir.