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

  • EmperorTigerstar

    EmperorTiger

    14 EYLÜL 2009
  • Glyn Dewis

    Glyn Dewis

    25 AĞUSTOS 2007
  • SegaAmerica

    SegaAmerica

    5 Mart 2008