2012-06-21 32 views
7

Tôi muốn xuất một số lớp, ví dụ: DogCat. Một cách để giải quyết vấn đề này là:CoffeeScript và NodeJS: Làm cách nào để xuất nhiều lớp?

class Dog 
    bark: -> console.log "Arff! :D" 

class Cat 
    meaow: -> console.log "Meaw!" 


module.exports = {Dog, Cat} 

Tôi có thể làm điều gì đó tương tự mà không cần gõ tên lớp hai lần?

+0

Và nếu bạn thêm một lớp thứ ba, bạn có muốn xuất nó quá? –

+0

@FlorianMargaine Có. –

Trả lời

5

Bạn có thể sử dụng một cái gì đó như thế này:

class exports.Dog 
    bark: -> console.log "Arff! :D" 

này biên dịch xuống:

exports.Dog = (function() { 

    function Dog() {} 

    Dog.prototype.bark = function() { 
    return console.log("Arff! :D"); 
    }; 

    return Dog; 

})(); 
1

Nói chung tôi muốn có một biến địa phương (vì vậy tôi không cần phải gõ exports.x tất cả các thời gian) và một biến xuất khẩu (vì vậy tôi không phải xác định tất cả các xuất khẩu cùng một lúc ở cuối), vì vậy tôi làm như sau:

exports.dog = class Dog 
    bark: -> 

exports.cat = class Cat 
    meow: -> 
3

Một cách khác để điều này là bằng cách làm như sau:

module.exports = 
    Dog: class Dog 
      bark: -> console.log "Arff! :D" 

    Cat: class Cat 
     meaow: -> console.log "Meaw!" 

Sau đó, bạn có thể làm như sau:

animals = require './animals' 

dog = new Animals.dog() 
Các vấn đề liên quan