JavaScript Ok İşlevleri nelerdir?

Nov 28 2022
Bu yazıda, JavaScript Ok İşlevleri hakkında her şeyi öğreneceksiniz. Kodu daha kısa hale getirmek için kullandığımız ok işlevleri ve yazabileceğiniz birçok varyasyon var.

Bu yazıda, JavaScript Ok İşlevleri hakkında her şeyi öğreneceksiniz. Kodu daha kısa hale getirmek için kullandığımız ok işlevleri ve yazabileceğiniz birçok varyasyon var.

Javascript çok işlev ağırlıklı bir dildir . Javascript'teki işlevler en değerli kavramlardan biridir. İşlevler yazıyoruz, işlevleri geçiyoruz, geri aramalar ve eşitleme kodu işlevlerimiz var. Bu sadece JavaScript'in temel bir parçasıdır.

Uzun bir süre javascript ile fonksiyon yazmak için fonksiyon anahtar kelimeleri yazdık. İşte JavaScript'teki bazı işlev örnekleri. Burada bir function anahtar sözcüğü kullandığımızı görebilirsiniz.


(function () {
   //...
});

Anonim bir işleve, ilk oluşturulduktan sonra erişilemez. Bu nedenle, genellikle bir değişkene atamanız gerekir.

Örneğin, aşağıda bir mesaj görüntüleyen anonim bir işlev gösterilmektedir:

let show = function() {
    console.log('Anonymous function');
};

show();

Anonim fonksiyonu daha sonra çağırmamız gerektiğinden, anonim fonksiyonu show değişkene atıyoruz.

Anonim işlevin show değişkenine atanmasının tamamı geçerli bir ifade oluşturduğundan, anonim işlevi parantez içine almanıza gerek yoktur ().

Uygulamada, genellikle anonim işlevleri argüman olarak diğer işlevlere iletirsiniz. Örneğin:

setTimeout(function() {
    console.log('Execute later after 1 second')
}, 1000);

İşlevlerin JavaScript'te birinci sınıf vatandaşlar olduğunu unutmayın . Bu nedenle, bir işlevi başka bir işleve argüman olarak iletebilirsiniz.

Burada ne zaman bir fonksiyon anahtar kelimesi yazmamız ve bir fonksiyon tanımlamamız gerektiğini görebilirsiniz. Ancak Ok İşlevinin resme girdiği yer burasıdır. ES6, anonim işlevleri bildirmek için bir kestirme yol sağlayan ok işlevi ifadelerini tanıttı. Bir ok işlevi ifadesi , bazı anlamsal farklılıklar ve kullanımda kasıtlı sınırlamalar ile geleneksel bir işlev ifadesine kompakt bir alternatiftir .

Normalde Arrow işlevleri daha kısadır ve bazen geleneksel javascript işlevlerine göre farklı davranırlar.

Ok İşlevleri, Internet Explorer için desteklenmez .

Tarayıcı Uyumluluğu

Bir ok fonksiyonu tanımlarken '= ve >' sembollerini kullanıyoruz. Bir oka benziyor, bu yüzden bu fonksiyonlara ok fonksiyonları diyoruz.

let show = () => console.log('Anonymous function');

Normal fonksiyonu şöyle bir ok fonksiyonu olarak yazabiliriz.

let add = function (a, b) { // Normal Fucntion
    return a + b;
};
let add = (a, b) => a + b;  // Arrow Fucntion

  • 2 bağımsız değişkeniniz varsa, parantezleri normal bir işlev olarak kullanabilirsiniz:
  • let add = function (a, b) { // Normal Fucntion
        return a + b;
    };
    
    
    
    let add = (a, b) => a + b;  // Arrow Fucntion
    

    let square = function(x){ // Normal Fucntion
        return x * x;
    }
    
    
    let square = (x) => { // Arrow fucntion with parenthesis
        return x * x;
    }
    
    let square = x => { // You can modify it as like this
        return x * x;
    }
    
    let square = x => (  // Furthermore you can modify by removing return keyword
         x * x   // Replace {} with  ()
    );
    
    let square = x => x * x; // Furthermore you can modify
    

    let test  = () => console.log('No Arguments');
    

Bu sorunu ortadan kaldırmak için parantez içine almamız gerekiyor .

Artık javascript bunu bir dönüş değeri olarak biliyor ve bu sadece bir işlev gövdesi için bir kaşlı ayraç değil.

thisOk işlevlerinin , argumentsveya için kendi bağlamaları superyoktur ve yöntem olarak kullanılmamalıdır.

  • Ok işlevi ifadeleri, yalnızca yöntem dışı işlevler için kullanılmalıdır çünkü bunların kendi ifadeleri yoktur this.

const person ={
    name: "Kasun",
    action: function(){
        console.log(this.name, "says Hi");
    }
}

person.action();

Eylemi bir kişi nesnesine çağırıyorum ve adın değeri birleştirilmiş dizeyle birlikte dönecek. Şimdi normal fonksiyonlar yerine ok fonksiyonlarını kullanalım.

const person ={
    name: "Kasun",
    action: () => console.log(this.name, "says Hi")
}

person.action();

Şimdi çıktı olarak sadece “ Merhaba diyor ” mesajını alıyoruz . Burada ne oldu? Ok fonksiyonlarını kullandığımızda, normal fonksiyonlar çalıştığı için ismin değeri ayarlanmamıştır. Bunu ok işlevlerinde kullandığımızda sadece pencere nesnesine ayarlanır. Actions fonksiyonu bağımsız bir fonksiyonmuş gibi davranır.

Benzer nedenlerle, arrow işlevlerinde çağrıldığında , ve yöntemleri kullanışlı değildir, çünkü ok işlevleri, arrow işlevinin tanımlandığı kapsama göre kurulur call()ve apply()işlevin nasıl çağrıldığına bağlı olarak değer değişmez.bind()thisthis

  • Ok işlevleri yapıcı olarak kullanılamaz ve ile çağrıldığında hata verir new. Ayrıca mülkleri de yok prototype.
  • const Foo = () => {};
    const foo = new Foo(); // TypeError: Foo is not a constructor
    console.log("prototype" in Foo); // false
    

Bu tamamen Arrow fonksiyonlarıyla ilgili ve umarım ok fonksiyonlarını mükemmel bir şekilde anlarsınız. Başka bir eğitimde görüşmek üzere.

Teşekkürler!