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

  • DRDAnimation

    DRDAnimation

    28 EYLÜL 2012
  • ibebrent

    ibebrent

    23 Temmuz 2007
  • Matt Davis

    Matt Davis

    4 ŞUBAT 2006