JavaScript Fonksiyon Çağrılarında Parantezli ve Parantezsiz Kullanım Farkı

İlgili Etiketler:1.JavaScript örneği
2. JavaScript'te Prototipler ve Kalıtım

Giriş: function fun() { return 1; } var a = fun; var b = fun(); JavaScript'te aşağıdaki koda fonksiyon diyoruz: function fun() { return 1; } Fonksiyon, function adlı bir referans türüdür, dolayısıyla fonksiyon bir nesnedir. Nesne bellekte saklanır ve fonksiyon adı bu nesneyi işaret eden bir göstericidir. var
function fun ( ) {
return 1 ;
}
var a = fun;
var b = fun( );
JavaScript'te aşağıdaki koda fonksiyon diyoruz:
function fun ( ) {
return 1 ;
}

【JavaScript fonksiyon çağrılarında parantezli ve parantezsiz kullanım】


Fonksiyon, function adlı bir referans türünün örneğidir, dolayısıyla fonksiyon bir nesnedir. Nesne bellekte saklanır ve fonksiyon adı bu nesneyi işaret eden bir göstericidir.
var a = fun ifadesi, fun fonksiyon adının göstericisini a değişkenine kopyalamak anlamına gelir; ancak bu, fonksiyonun kendisinin kopyalandığı anlamına gelmez.
Yani: a, fun fonksiyonudur; b ise 1'dir.
Fonksiyon adının ardından parantez geliyorsa, bu fonksiyondaki kodun (süslü parantez içindeki kod) anında çağrıldığı (çalıştırıldığı) anlamına gelir.

【JavaScript fonksiyon çağrılarında parantezli ve parantezsiz kullanım】
Parantez olmadan, fonksiyon adı fonksiyonun göstericisi olarak kullanılır. Bir fonksiyonun adı, o fonksiyonun göstericisidir. Bu durumda fonksiyonun sonucu elde edilmez, çünkü fonksiyon gövdesindeki kod çalıştırılmaz. Yalnızca fonksiyon gövdesinin bulunduğu adres aktarılır; böylece gerektiğinde fonksiyon gövdesi bulunup çalıştırılabilir.
Örneğin:
window.onload = init ;
Bu kod satırı çalıştırıldığında init fonksiyonu hemen çalıştırılmaz. Tarayıcı belgeyi yüklediğinde bu satır da yüklenir ve belge yüklendikten sonra hangi fonksiyonun çalıştırılacağı belirtilir; ancak o anda çalıştırılmaz. Tüm belge yüklendikten sonra init göstericisi aracılığıyla init () çalıştırılır.
Not: Bu makalenin bir kısmı şu kaynaklardan alınmıştır:
https://www.zhihu.com/question/31044040
http://blog.csdn.net/yyx19941129/article/details/49642515
Yazar: jiankunking Kaynak: http://blog.csdn.net/jiankunking

Telif hakkı beyanı: Bu makalenin içeriği Alibaba Cloud'un gerçek adlı kayıtlı kullanıcıları tarafından sağlanmıştır. Telif hakkı orijinal yazara aittir. Alibaba Cloud Geliştirici Topluluğu telif hakkına sahip değildir ve ilgili yasal sorumluluğu üstlenmez. Ayrıntılı kurallar için lütfen "Alibaba Cloud Geliştirici Topluluğu Kullanıcı Hizmet Sözleşmesi" ve "Alibaba Cloud Geliştirici Topluluğu Fikri Mülkiyet Koruma Kılavuzu" belgelerine bakın. Bu toplulukta intihal şüphesi olan herhangi bir içerik bulursanız, ihlal şikayet formunu doldurarak bildirimde bulunabilirsiniz. Doğrulandıktan sonra, bu topluluk ihlal ettiği iddia edilen içeriği derhal silecektir.

İlgili Makaleler

Daha Fazla Özel Teklifi Keşfedin

  1. Kısa Mesaj Hizmeti (SMS) & E-posta Hizmeti

    50.000 e-posta paketi 1,99 USD'den başlayan fiyatlarla, 120 kısa mesaj yalnızca 1,00 USD'den başlar.

phone Bize Ulaşın
Hi, I'm Alibaba Cloud AI Assistant!
I can help with questions and solutions.