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

  • Associated Press

    Associated P

    18 EYLÜL 2006
  • BlackBoxTV

    BlackBoxTV

    7 Mayıs 2007
  • lilstevie89

    lilstevie89

    25 Mart 2011