SORU
17 Kasım 2008, PAZARTESİ


Ağır basan bir JavaScript aslı başvuru sırasında fonksiyon

(Eğer bir tane varsa bu sorunun cevabı, muhtemelen orada zaten, ama doğru terminoloji eksikliği.)

Geçersiz kılmak istediğim bir fonksiyonu, a(), var, ama aynı zamanda özgün a() sipariş içeriğe bağlı olarak yapılacak. Bazen bir sayfanın getirici ben örneğin, bu gibi geçersiz kılmak isterim:

function a()
{
  new_code();
  original_a();
}

ve bazen böyle:

function a()
{
  original_a();
  other_new_code();
}

Bu nasıl aşırı sürüş a() içinden original_a()? Hatta mümkün mü?

(Lütfen aşırı sürme bu şekilde alternatif teklif etme, çok iyi biliyorum. Bu şekilde özellikle soruyorum.)

CEVAP
17 Kasım 2008, PAZARTESİ


Böyle bir şey yapabilirsin:

var a = (function() {
    var original_a = a;

    if (condition) {
        return function() {
            new_code();
            original_a();
        }
    }
    else {
        return function() {
            original_a();
            other_new_code();
        }
    }
})();

İsimsiz bir işlev içinde original_a ilan genel ad yığılan uzak tutuyor, ama iç fonksiyonları kullanılabilir.

Nermaster yorumlarda da belirtildiği gibi, sonunda () eklemeyi unutmayın. Dış işlev ve çağrı depolamak istediğinizsonuç(iki iç fonksiyonları) a dış deposu a kendini işlevi.

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

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Angry Paintballer

    Angry Paintb

    8 Ocak 2012
  • hydejiaqi

    hydejiaqi

    12 Mart 2008
  • Lena Danya

    Lena Danya

    11 NİSAN 2010