2016-04-26 29 views
0

Ich versuche, Express zu lernen und wollte ES6 mit Babel verwenden. Meine Fragen sind, wenn ich statische Methoden für die Bearbeitung von Anfragen wie Balg verwenden;ES6 Express und statische Methoden Verwendung Fragen

Ich frage mich, wird dies (mit statischen Methoden) Leistung bewirken? Ich habe nicht viel Wissen über Node.js Runtime, aber wie ich weiß, statische Methoden so oft in einer Sprache (wie C#) ist nicht eine gute Sache.

Oder gibt es einen anderen richtigen Weg, dies mit ES6-Klassen zu tun.

Antwort

2

ES6-Klassen sind nicht wirklich eine neue Struktur, es ist nur eine Syntax Zucker für JavaScript prototypisches Modell.

Also, wenn Sie etwas tun:

class Animal { 
    constructor(name, age) { 
    this.name = name; 
    this.age = age; 
    } 

    static printAllowedTypes() { 
    console.log('Rabbit, Dog, Cat, Monkey'); 
    } 

    printName() { 
    console.log(`Name: ${this.name}`); 
    } 

    printAge() { 
    console.log(`Age: ${this.age}`); 
    } 
} 

Hinter den Kulissen, übersetzen sie im Grunde nur dazu:

function Animal(name, age) { 
    this.name = name; 
    this.age = age; 
} 

Animal.printAllowedTypes = function() { 
    console.log('Rabbit, Dog, Cat, Monkey'); 
}; 

Animal.prototype.printName = function() { 
    console.log(`Name: ${this.name}`); 
}; 

Animal.prototype.printAge = function() { 
    console.log(`Age: ${this.age}`); 
}; 

So ist es ein praktisches Kürzel, aber es ist immer noch mit nur JavaScripts prototypal Sachen. Soweit es Ihre Frage betrifft, wird lediglich eine reguläre Funktion an router.get übergeben, so dass es keinen Leistungsunterschied gibt.

+0

Danke. Deine Antwort macht Sinn. –