SORU
2 ŞUBAT 2011, ÇARŞAMBA


RequireJS: bir tek içeren modülleri tanımlamak için Nasıl "sınıf"?

"Her biri kendi JavaScript dosyasında uygulanır. "sınıflar JavaScript var İçin geliştirme dosyaları yüklendi bireysel ve üretim onlar birleştirilmiş, ama her iki durumda ben manuel olarak tanımlamak bir yükleme sırası, yapım emin B gelir sonra Bir B kullanır A. ben planlaması için kullanın. RequireJS gibi bir uygulama CommonJS Modules/AsynchronousDefinition bu sorunu çözmek için bana otomatik olarak.

Daha iyi bir yolu, her bir ders verme modülleri tanımlamak için daha bunu yapmak için var mı? Nasıl adı ne ihracatı modülü? Bir modül "" bir sınıf verme "Çalışan" örnek olarak, DRY gelmiyor bana yeter. çalışan

define("employee", ["exports"], function(exports) {
    exports.Employee = function(first, last) {
        this.first = first;
        this.last = last;
    };
});

define("main", ["employee"], function (employee) {
    var john = new employee.Employee("John", "Smith");
});

CEVAP
2 ŞUBAT 2011, ÇARŞAMBA


AMD proposal Yalnızca verilen nesne için bir değer döndürmek için izin verir. Ama AMD teklifin bir özelliği olduğunu unutmayın, sadece bir API öneri ve zor modülünü düzenli CommonJS bir modüle geri çevirmek için yapacaktır. Bu TAMAM, ama yararlı bilgiler olduğunu düşünüyorum.

Aşağıdakileri yapabilirsiniz:

Büyük harf, bir isim ile başlamak için bir yapıcı işlevi verme modülleri tercih ederim, Bu modülün olmayan iyileştirilmiş versiyonu da employee.js olacaktır

define("Employee", function () {
    //You can name this function here,
    //which can help in debuggers but
    //has no impact on the module name.
    return function Employee(first, last) {
        this.first = first; 
        this.last = last;
    };
});

Şimdi başka bir modülü, personel modülü gibi kullanabilirsiniz:

define("main", ["Employee"], function (Employee) {
    var john = new Employee("John", "Smith");
});

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

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Anthony Le

    Anthony Le

    10 EKİM 2006
  • Bryan Smith

    Bryan Smith

    12 Mart 2006
  • L- Crysis

    L- Crysis

    30 Aralık 2011