SORU
3 ŞUBAT 2012, Cuma


Ekleme kod bir javascript fonksiyonu için programlama yoluyla

Orijinal JS kodu değiştirmeden varolan JS kitaplığı özelleştirmek için girişimde bulundum. Bu kod yükler birkaç harici JS dosyaları var erişmek için, ve ne yapmak istiyorum. bir işlevleri bulunan orijinal dosya kopyalama ve yapıştırma şeyin içine ikinci bir JS dosyası.
Yani, örneğin, kapalı sınırlar JS böyle bir işlevi olabilir:

var someFunction = function(){
    alert("done");
}

Öyle ya bu işlev bazı JS kodu eklemek önüne edebilmek istiyorum. Nedeni orijinal dokunulmaz JS işlevi oldukça büyük olduğunu öncelikle ve eğer bu JS hiç güncelleme alırsa, ben üzerine yazma fonksiyonu güncel olacak.

Tamamen bu mümkün olduğundan emin değilim, ama kontrol edeyim dedim.
Teşekkürler.

CEVAP
3 ŞUBAT 2012, Cuma


someFunction genel olarak mevcut değilse, işlevi önbellek, kendi oluşturmak, ve sizin arama olabilir.

Eğer öyleyse, bu orijinal

someFunction = function() {
    alert("done");
}

Bunu yapmak istiyorum...

someFunction = (function() {
    var cached_function = someFunction;

    return function() {
        // your code

        var result = cached_function.apply(this, arguments); // use .apply() to call it

        // more of your code

        return result;
    };
}());

Burada keman: http://jsfiddle.net/kXkFS/


.apply önbelleğe işlevini çağırmak için kullanıyorum dikkat edin. Bu this beklenen değeri beni korumak ve tek tek bağımsız değişken olarak geçirilen neyse kaç kişi vardı ne olursa olsun es geçiyor.

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

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • EEVblog

    EEVblog

    4 NİSAN 2009
  • TotalxLuna

    TotalxLuna

    27 Kasım 2011
  • UKF Dubstep

    UKF Dubstep

    29 NİSAN 2009