SORU
2 EKİM 2011, Pazar


Bir işlevi döndüren fonksiyonlar - Javascript

'Son zamanlarda JavaScript ve bu kavram ile sıkışmış olduğumu öğrenmeye başladım 'İşlevler'. fonksiyonlar I Kitap 'Odaklı Javascript' Stoyan Stefanov tarafından. Nesne bahsediyorum Java, C ve C ve iş deneyimi de 2 yıl benim bilginin uygulanması aynı önceki programlama deneyimi var.

Bir Parçacık:

function a() {

    alert('A!');

    function b(){
        alert('B!'); 
    }

    return b();
}

var s = a();
alert('break');
s();

Çıkış:

A!
B!
break

İki Parçacık

function a() {

    alert('A!');

    function b(){
        alert('B!'); 
    }

    return b;
}

var s = a();
alert('break');
s();

Çıkış:

A!
break
B!

Biri bana b dönen ve b() yukarıdaki parçacıkları arasındaki farkı söyleyebilir? Google'da bir şeyler aramaya çalıştım ama herhangi bir değerli bağlantılar alamadım. Eğer birisi de bana bazı bağlantılar açıklanarak verirse memnun olurum. Teşekkür ve Saygılarımızla.

CEVAP
2 EKİM 2011, Pazar


Bir fonksiyon (parantez olmadan) için bir değişken atama işlevi referans kopyalar. Fonksiyon adının sonunda parantez koyarak, çağrı işlevi, işlevleri değeri geri dönüyor.

Demo

function a() {
    alert('A');
}
//alerts 'A', returns undefined

function b() {
    alert('B');
    return a;
}
//alerts 'B', returns function a

function c() {
    alert('C');
    return a();
}
//alerts 'C', alerts 'A', returns undefined

alert("Function 'a' returns "   a());
alert("Function 'b' returns "   b());
alert("Function 'c' returns "   c());

Örnek, ayrıca bir fonksiyon içinde işlevlerini tanımlama. Gibi:

function d() {
    function e() {
        alert('E');
    }
    return e;
}
d()();
//alerts 'E'

İşlevini hala çağrılabilir. Yine de var. Bu JavaScript her zaman kullanılır. Fonksiyonları etrafında geçirilebilirsadecediğer değerler gibi. Aşağıdakileri göz önünde bulundurun:

function counter() {
    var count = 0;
    return function() {
        alert(count  );
    }
}
var count = counter();
count();
count();
count();

Fonksiyon sayısı dışında tanımlanan değişkenleri tutabilir. Bu kapanışı olarak adlandırılır. Ayrıca JavaScript içinde çok kullanılır.

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • ☆ SUB4SUB CENTER! ☆ spam here

    ☆ SUB4SUB

    22 ŞUBAT 2010
  • Bogdan Gabriel

    Bogdan Gabri

    5 Aralık 2006
  • jcortes187

    jcortes187

    24 Mart 2006