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

  • Kassem G

    Kassem G

    25 EKİM 2006
  • Within Temptation

    Within Tempt

    18 EYLÜL 2006
  • WOSU Public Media

    WOSU Public

    23 AĞUSTOS 2007