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

  • Art Food Kitty - Kelly Eddington

    Art Food Kit

    7 Kasım 2006
  • Breno Rises

    Breno Rises

    7 Ocak 2014
  • Trulia

    Trulia

    29 Kasım 2006