Ok işlevleri daha derli topludur, ancak getirdikleri bir sürü başka fark olduğunu biliyor muydunuz?
İşlevler, yeniden kullanılabilir kod yazmak için kullanmanız gereken JavaScript'in önemli bir parçasıdır. İki ana işlev türü, normal ve ok işlevleridir ve bunları tanımlamanın birçok yolu vardır.
Benzer ihtiyaçları karşılamalarına rağmen, bunları kodunuzda nasıl kullandığınızı temelden etkileyebilecek birkaç kritik farklılıkları vardır. Ok işlevleri ile normal işlevler arasındaki çeşitli farklar hakkında her şeyi öğrenin.
1. Sözdizimi Farklılıkları
JavaScript işlevlerini geliştirirken seçtiğiniz sözdiziminin, kodunuzu okumanın ve anlamanın ne kadar basit olduğu üzerinde büyük etkisi vardır. Normal ve ok işlevlerinin sözdizimi, bunları nasıl yazdığınızı ve kullandığınızı etkileyerek önemli ölçüde farklılık gösterir.
JavaScript ok işlevleri daha anlaşılır olan daha küçük bir dil yapısı kullanın. Bunları tek bir ifadede veya deyimde birleştirerek işlevler oluşturmak için kullanabilirsiniz.
sabit ekle = (bir, b) => bir + b;
Bu örnekte, eklemek işlev iki girişi kabul eder, A Ve B, ve toplamını döndürür. bu => işareti bunu bir ok işlevi olarak tanımlar.
Öte yandan, düzenli bir işlev tanımlamak, işlev Bu örnekte gösterildiği gibi, daha ayrıntılı bir sözdizimine sahip anahtar kelime:
işleveklemek(bir, b) {
geri dönmek bir + b;
}
Bu örnekte, işlev anahtar kelime, aynı zamanda kaşlı ayraçlar kullanan normal bir işlevi tanımlar ve geri dönmek ifade.
Düzenli işlevler, birden çok deyim veya ifade gerektiren karmaşık sözdizimi için daha kullanışlıdır. Bunun tersine, ok işlevleri, kodunuzun daha kolay okunmasını ve anlaşılmasını sağlayan daha özlü bir sözdizimi kullanır.
2. Kapsam Farkları
"Kapsam belirleme" terimi, bir işlevin dahili değişkenlerine ve işlevlerine nasıl erişilebileceğini açıklar. JavaScript'te, kapsamı kullanarak kodunuz genelinde değişkenleri ve işlevleri tanımlar ve bunlara erişirsiniz. Onların farklı kapsam belirleme, JavaScript'leri nasıl yazdığınızı ve kullandığınızı önemli ölçüde etkileyebilir ok ve normal fonksiyonlar.
Kapsam belirlemede, ok işlevleri Bu anahtar kelime, normal işlevlerin yaptığından önemli ölçüde farklıdır. Düzenli fonksiyonlar tanımlar Bu anahtar kelimenin kendisi; bu nedenle, işlevi çağırdığınız bağlama göre değişebilir.
Öte yandan, belirtmedikleri için Bu anahtar kelime, ok işlevleri aynı şeyi kullanır Bu onları çevreleyen statik kapsam olarak.
Farkı görmek için aşağıdaki örneği inceleyin. Diyelim ki bir kişi ile nesne isim özellik ve denilen bir yöntem adı söyle() bu, normal bir işlev kullanarak kişinin adını günlüğe kaydeder:
sabit kişi = {
isim: 'John,'adı söyle: işlev() {
konsol.kayıt(Bu.isim);
}
};
kişi.sayAdı(); // 'John'u günlüğe kaydeder
Burada normal sayName() işlevi, person nesnesinin bir yöntemidir ve Bu bu işlevin içindeki anahtar kelime, o kişi nesnesini ifade eder.
Şimdi aynı şeyi bir ok işleviyle deneyelim:
sabit kişi = {
isim: 'John',adı söyle: () => {
konsol.kayıt(Bu.isim);
}
};
kişi.sayAdı(); // günlükler tanımsız
Çünkü kullanılan ok fonksiyonu adı söyle() yöntem kendi tanımlamıyor Bu anahtar kelimesini kullanır. Bu onu çevreleyen statik kapsamın. Bu durumda, örneğin küresel kapsamı budur.
Sonuç olarak, aradığınızda kişi.sayAdı(), alırsın Tanımsız ziyade "John." Bu, kodunuzdaki işlevleri nasıl yazdığınızı ve kullandığınızı önemli ölçüde etkileyebilir.
3. Kullanım Örnekleri ve En İyi Uygulamalar
Düzenli işlevler, kendi işlevlerini gerektiren işlevler için daha uygundur. Bu bir nesnedeki yöntemler gibi anahtar sözcük.
Ok işlevleri şunlar için daha uygundur: işlevsel programlama ve gerektirmeyen geri aramalar Bu anahtar kelime.
4. İşlev Bağlama Farklılıkları
Fonksiyon bağlama, arasındaki ilişkiyi tanımlamak için kullanılan terimdir. Bu kodunuzdaki anahtar kelime ve işlevler. Ok işlevleri ile normal işlevler arasındaki işlev bağlamadaki farklılıklar, ok işlevlerini oluşturma ve kullanma şeklinizi büyük ölçüde etkileyebilir.
Kullanmak Bu anahtar kelime, onu normal işlevlerde benzersiz kılar ve işlevi çağırmak için kullanılan yönteme bağlı olarak çeşitli nesnelerle ilişkilendirir. İşlev bağlama, normal ve ok işlevleri arasındaki en önemli ayrımlardan biridir.
Buna karşılık, ok işlevlerinde Bu anahtar kelime; bunun yerine çevredeki dürbünlerden alırlar.
Bu farkı daha iyi anlamak için bir örneğe bakalım. sahip olduğunuzu varsayalım kişi ile nesne isim alan ve adı verilen bir yöntem adı söyle() kişinin adını kaydetmek için normal bir işlev kullanan:
sabit kişi = {
isim: 'John',adı söyle: işlev() {
konsol.kayıt(Bu.isim);
}
};sabit başka bir Kişi = {
isim: 'Jane'
};
kişi.sayName.call (başka bir Kişi); // 'Jane'i günlüğe kaydeder
Bu örnekte, kişi nesnesinin adı söyle() değeri olan yöntem Başka kişi kullanmak Arama() yöntem. Bundan dolayı, adı söyle() yöntem, Bu, anahtar kelime şuna bağlıdır: Başka kişi nesne ve günlüğe kaydeder "jane" ziyade "John."
Şimdi aynı şeyi bir ok işleviyle kullanalım:
sabit kişi = {
isim: 'John',adı söyle: () => {
konsol.kayıt(Bu.isim);
}
};sabit başka bir Kişi = {
isim: 'Jane'
};
kişi.sayName.call (başka bir Kişi); // günlükler tanımsız
Beri adı söyle() tekniğin kendi anahtar kelimesi yok, bu örnekte onun içinde bir ok işlevi kullanıyorsunuz. Bu durumda, ok işlevi, genel kapsam olan çevreleyen kapsamın özelliklerini devralır.
Bunun anlamı, koştuğunuz zaman kişi.sayName.call (başka bir Kişi), ok işlevi Bu anahtar kelime global nesne olarak kalır ve Tanımsız yerini alır jane günlükte.
Bir işlevi belirli bir işleve bağlamanız gerekirse Bu değer, sıradan bir fonksiyon tercih edilebilir. Ancak, bir işlevi belirli bir işleve bağlamanız gerekmiyorsa Bu değeri, bir ok işlevi daha kısa ve anlaşılması daha kolay olabilir.
5. Örtülü İade
Ok işlevi, örtük bir dönüş özelliğine sahiptir. İşlev gövdesi tek bir ifadeden oluşuyorsa, işlevler bu ifadeyi döndürür.
Örnek olarak:
sabit çift = (X) => X * 2;
Bu ok işlevi, bir parametreden bir çift döndürür. Açıklayıcı kullanmanıza gerek yok geri dönmek anahtar sözcük çünkü işlev gövdesinde yalnızca bir ifade vardır.
6. Uyumluluk Farkları
Uyumluluk farklılıkları, eski tarayıcılar veya ortamlarla çalışmayabilen ECMAScript 6 eklenmiş ok işlevlerine atıfta bulunur. Öte yandan, düzenli işlevler JavaScript'in başlangıcından beri var ve geniş çapta destekleniyor.
Aşağıda, daha yerleşik koşullarda çalışmayabilecek bir ok işlevinin bir örneği verilmiştir:
sabit ekle = (bir, b) => bir + b;
Aşağıdaki, çoğu durumda çalışması gereken karşılaştırılabilir bir normal işlevdir:
işleveklemek(bir, b) {
geri dönmek bir + b;
}
Uyumluluğu sağlamak için eski ortamları hedeflerken ok işlevleri yerine normal işlevleri kullanın. Ancak ok işlevleri, modern tarayıcılar ve ortamlarla çalışırken anlaşılması daha kolay ve daha yoğun bir sözdizimi sağlayabilir.
JavaScript'te Ok İşlevleri ve Normal İşlevler Arasında Seçim Yapma
JavaScript'te, ok ve düzenli işlevlerin farklı özellikleri ve uygulamaları vardır. Ok işlevlerinin basit bir sözdizimi vardır; Bu anahtar kelime terimi kullanımları bağlamından alırken, normal işlevler daha uyarlanabilir ve daha karmaşık durumlarla başa çıkabilir.
Nasıl farklı olduklarını ve bunları kodunuzun gereksinimlerine göre nasıl kullanacaklarını bilmek çok önemlidir. Hangi tür işlevi kullanacağınızı seçerken uyumluluk farklılıklarını da göz önünde bulundurmalısınız.
Sonuç olarak, JavaScript'in ok ve düzenli işlevleri, daha temiz ve daha verimli kod yazmanıza yardımcı olan güçlü araçlardır.